วานิช -> Nginx -> Apache เป็นความคิดที่ดีหรือไม่?


10

ฉันกำลังคิดเกี่ยวกับสถาปัตยกรรมสำหรับเว็บเซิร์ฟเวอร์ใหม่ การใช้วานิชเป็นแคชต่อหน้า Nginx เป็น reverse-proxy และให้บริการไฟล์คงที่หน้า apache สำหรับการยกของหนักทั้งหมดเป็นความคิดที่ดีหรือไม่?

ฉันจะรัน php และ ruby ​​บนแอปพลิเคชันทางรถไฟ

จะมีค่าใช้จ่ายมากเกินไปที่ส่งคำขอ php ไป apache ผ่านสองกระบวนการอื่นหรือไม่

ขอบคุณมาก!

คำตอบ:


8

ใช่มันถูกต้อง แนวทางส่วนตัวของฉันคือใช้ Varnish เบื้องหน้าและใช้ VCL เพื่อแยกการรับส่งข้อมูลระหว่างคำร้องขอ NGINX แบบคงที่และการยกที่หนักหน่วงของคุณ (ไม่ว่าจะเป็น Apache หรือ Passenger หรือ ... มันไม่สำคัญ) นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งหากอยู่ในเครื่องเดียวกับที่คุณไม่ต้องการค่าใช้จ่ายเพิ่มเติม ไม่จำเป็นต้องซื้ออะไรเลย


ใช่นี่เป็นความคิดที่ดีเพราะวานิชควรจะค่อนข้างเร็วสำหรับเรื่องนี้
Zoran Zaric

6

น้ำยาเคลือบเงายังไม่รองรับการบีบอัด gzip ดังนั้นจึงควรเปลี่ยนด้วย nginx ด้านหน้าเพื่อบีบอัดสิ่งเคลือบเงาที่ส่งกลับ เนื่องจาก varnish และ nginx ไม่ได้ต่อสู้เพื่อทรัพยากรเดียวกัน (nginx ใช้ CPU สำหรับการบีบอัด gzip ในขณะที่ varnish ใช้หน่วยความจำ) พวกเขาควรทำงานอย่างราบรื่นบนเครื่องเดียวกัน

ตอนนี้น้ำยาเคลือบเงารองรับการบีบอัด gzipดังนั้นหากคุณไม่ต้องการการเลิกใช้ SSL (ตามที่แนะนำในความคิดเห็น) ฉันขอแนะนำให้วางน้ำยาวานิชโดยตรงกับอินเทอร์เน็ต

สำหรับ http:

(อินเทอร์เน็ต) -> (วานิช, gzip, แคช, esi) -> (ใบสมัคร)

สำหรับ https:

(อินเทอร์เน็ต) -> (nginx, ssl) -> (วานิช, gzip, แคช, esi) -> (ใบสมัคร)

หากคุณต้องการ Apache ในนั้นด้วย (สำหรับการสนับสนุน mod_foobar ที่แพร่หลาย) ฉันจะใส่มันระหว่างวานิชและแอปพลิเคชัน

อัปเดต: อัปเดตเพื่อรวมการสนับสนุน gzip ในวานิช 3.0 เพิ่ม ssl / esi ตามที่แนะนำในความคิดเห็น


หากสิ่งที่ให้บริการเนื้อหาที่จะเคลือบวานิชเข้ารหัสใน gzip จากนั้นวานิชจะส่งต่อไปยัง gzipped โดยไม่บ่น: varnish-cache.org/wiki/FAQ/ การบีบอัดสิ่งเดียวที่เคลือบไม่ได้ทำคือการนำเนื้อหาที่ไม่ได้ถูกบีบอัดจากที่ไม่ได้ฟอก ใบสมัครและสำรองมันบีบอัด นี่เป็นความเข้าใจของคุณเช่นกันหรือไม่?
ewalk

ครั้งเดียวที่คุณเรียกใช้ nginx หน้าวานิชคือเมื่อคุณใช้ ESI เนื่องจากคุณไม่สามารถทำชุดประกอบ ESI จากหน้าที่ถูกบีบอัดได้และวานิชจะไม่บีบอัดหน้าประกอบประกอบ Nginx จะวางอยู่ด้านหน้า Varnish เพื่อให้การบีบอัดนั้น หากต้นกำเนิดให้บริการเนื้อหาที่ถูกบีบอัดวานิชจะส่งผ่านข้อมูลนั้นไปยังไคลเอ็นต์ในรูปแบบที่บีบอัด
6738237482

ใช่ ESI เป็นหนึ่งในเหตุผลที่ฉันแนะนำการตั้งค่านี้ แต่ฉันเดาว่าถ้าแบ็คเอนด์ของคุณบีบอัดและคุณไม่ได้ใช้ ESI คุณสามารถแจกจ่ายด้วย nginx เนื่องจากฉันเชื่อว่าวานิชสามารถจัดการปริมาณการเข้าชมได้ค่อนข้างมาก เหงื่อแตก.
mogsie

@ user6738237482, การยกเลิก nginx suport SSL, วานิชไม่ ในความเป็นจริงการอยู่ตรงหน้าของสิ่งที่เคลือบเงาหรือ Apache เป็นสิ่งที่ nginx ได้รับการออกแบบมาเพื่อเป็นพร็อกซีเซิร์ฟเวอร์ที่รวดเร็วและมีน้ำหนักเบา
rmalayter

4

ปริมาณของค่าใช้จ่ายไม่ควรมีนัยสำคัญ ฉันสมมติว่าส่วนหนึ่งของเหตุผลที่คุณต้องการให้สองระดับนี้มีความยืดหยุ่น ในกรณีนี้คุณน่าจะเห็นเมื่อเทียบกับอาปาเช่ว่าวานิชและ nginx นั้นไม่ได้ทำงานหนักมาก

หากคุณทั้งสามระดับในเครื่องเดียวควรมีผลกระทบต่อประสิทธิภาพน้อยกว่าก่อนที่คุณจะถึงขีดความสามารถของเซิร์ฟเวอร์

เป็นทางเลือกทำไมไม่ทาเคลือบเงา + nginx กับผู้โดยสาร ฉันเคยใช้การตั้งค่านี้ในอดีตและ nginx โดยใช้ผู้โดยสารค่อนข้างเบาและวิ่งได้ค่อนข้างดี อาจเป็นสิ่งที่ควรค่าแก่การพิจารณาหากคุณไม่ได้แต่งงานกับอาปาเช่ในการใช้รางรถไฟของคุณ


ใช่ฉันอาจเปลี่ยนจาก apache เป็น nginx สำหรับ Rails แต่ให้ความสามารถในการใช้ไฟล์. htaccess แก่ลูกค้าคือ + สำหรับ apache สำหรับ php เป็นอย่างน้อย
Zoran Zaric

2

ฉันเป็นผู้ดูแลระบบ sys สำหรับแพลตฟอร์มอีคอมเมิร์ซเริ่มต้น เราใช้วานิช + nginx หน้าสแต็ก PHP / apache ของเราและทำงานได้อย่างมหัศจรรย์

เรามีแอปพลิเคชันที่ใช้หน่วยความจำสูงและแอปใช้ RAM ประมาณ 15-20gigs ต่อ webnode และเมื่อเราใส่วานิชไว้ข้างหน้าตอนนี้จะอยู่ที่ 8gig ของ RAM ต่อโหนด พวกเขาไม่เคยถูกแทง

ดังนั้นฉันขอแนะนำอย่างยิ่ง


3
คุณรู้ว่าวานิชไม่พูด ssl ใช่มั้ย
Mike

1

ฉันกำลังเรียกใช้ Drupal ด้วยโมดูลเพิ่มบนเซิร์ฟเวอร์ Apache + PHP + MySQL แต่ก่อนหน้าพวกเขาฉันใช้ Nginx พร้อมเปิดใช้งานคุณลักษณะ gzip-static และใช้ผลลัพธ์การเพิ่มประสิทธิภาพเพื่อให้บริการผู้ใช้

และเหนือสิ่งอื่นใดที่ฉันใช้วานิชทั้งหมดในพีซีเครื่องเดียวกันฉันได้ผลลัพธ์ที่ดี

ฉันยังใช้ Nginx เพื่อปรับแต่งส่วนหัวที่ Drupal ทำไม่ค่อยดีสำหรับแคช


0

มันไม่ใช่ความคิดที่ดีถ้าคุณต้องการ ESI Nginx มีระบบแคชตัวเองที่มีประสิทธิภาพที่ดีขึ้น


ฉันรู้ว่านี่เป็นคำตอบเก่า แต่น่าเสียดายที่ไม่มีลิงก์อีกต่อไปดังนั้นฉันจึงไม่สามารถยืนยันการอ้างสิทธิ์ของคุณได้ จากประสบการณ์ของฉันวานิชยากที่จะเอาชนะความเร็วและความยืดหยุ่นในฐานะพร็อกซีย้อนกลับ
Martijn Heemels

@MartijnHeemels web.archive.org/web/20130501222206/http://todsul.com/…และมีมาตรฐานอื่น: nbonvin.wordpress.com/2011/03/24/…
VBart

-1

Apache สามารถใช้เพื่อยกเลิก SSL (ถอดรหัส), ตรวจสอบhttp://noosfero.org/Development/Varnish#SSL


1
โปรดหลีกเลี่ยงการโพสต์ลิงก์เป็นคำตอบเป็นคำตอบของคุณมีแนวโน้มที่จะสูญเสียความหมายทั้งหมดเมื่อมันเป็นผลกระทบจากlinkrot โปรดพิจารณาแก้ไขคำตอบของคุณและรวมถึงส่วนที่เกี่ยวข้องจากลิงก์ที่คุณระบุไว้ในคำตอบของคุณ โดยตลอดให้ปล่อยลิงก์ไว้เป็นข้อมูลอ้างอิง
ไบรอัน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.