Nginx ขาดอะไรบ้างที่ Apache มี?


11

Nginx ถูกกล่าวว่าเป็นทรัพยากรที่มีประสิทธิภาพและตั้งค่าได้ง่ายกว่า Apache เพื่อนบอกฉันว่า "ไม่สามารถทำบางสิ่งที่ Apache สามารถทำได้ แต่ฉันไม่ต้องการสิ่งเหล่านั้น"

กระนั้นฉันก็ยังสงสัยว่า Apache ชนิดใดที่ Nginx ทำไม่ได้ ฉันไม่ต้องการรายการที่ละเอียดถี่ถ้วนเพียงแนวคิดทั่วไปของสถานการณ์ที่ Apache น่าจะเป็นทางเลือกที่ดีกว่า

คำตอบ:


9

ฉันคิดว่าสิ่งที่ยิ่งใหญ่ที่สุดที่ยังขาดหายไปจาก Nginx คือการรองรับ WebDAV อย่างสมบูรณ์ ค่อนข้างทุกแง่มุมอื่น ๆ ครอบคลุมโดยหลักหรือโมดูลบุคคลที่สาม

Nginx ไม่สนับสนุนสิ่งต่าง ๆ เช่น mod_php ตามการออกแบบดังนั้นฉันไม่แน่ใจว่าคุณสามารถพูดได้ว่า Nginx ขาดชิ้นส่วนเหล่านี้ มันเหมือนกับว่า Nginx กำลังบอกคุณค่อนข้างแรงว่าการใช้สิ่งนี้นั้นโง่


+1 ในขณะที่ฉันไม่เห็นด้วยที่ทุกคนอาจใช้ mod_php และสิ่งต่าง ๆ เช่นมันคือ "โง่" ฉันเห็นด้วยกับส่วนที่เหลือ
Chris S

นี่เป็นความคิดเห็นที่เกลียดชัง PHP หรือมีบางอย่างที่ไม่ดีเกี่ยวกับ mod_php จริง ๆ ? Link? ฉันถามเพราะเกือบทุกอย่างที่ฉันใช้ mod_php .. และโปรดฉันไม่สนใจสิ่งที่คุณคิดว่าดีกว่าฉันแค่อยากจะรู้ว่ามีอะไรผิดปกติกับ mod_php
Safado

3
mod_php ไม่มีส่วนเกี่ยวข้องกับ PHP เอง มันเกี่ยวข้องกับวิธีที่ PHP โต้ตอบกับ Apache ปัญหาคือเมื่อคุณฝัง PHP ไว้ใน Apache แล้วกระบวนการที่จัดการ PHP และกระบวนการที่จัดการกับไฟล์รูปภาพขนาด 2kb นั้นเป็นกระบวนการเดียวกัน หากลูกค้าปลายทางช้ากระบวนการที่มีราคาแพงมากของคุณสามารถแสดงภาพขนาดเล็กได้ 2 วินาทีซึ่งเป็นเวลาที่ PHP ใช้ไม่ได้
Martin Fjordvald

+1 "มันเหมือนกับว่า Nginx กำลังบอกคุณค่อนข้างแรงว่าการใช้สิ่งนี้นั้นโง่"

4

Apache มีโมดูลจำนวนมากที่ใช้ได้สำหรับสถานการณ์การปรับใช้บางอย่างซึ่งไม่สามารถทำได้โดย Nginx

ตัวอย่างหนึ่งคือmod_dav_svnการโฮสต์ Subversion ผ่าน HTTP มันเป็นเพียงใช้ได้สำหรับ Apache ตัวอย่างที่โดดเด่นอื่น ๆ เป็นสิ่งที่ต้องการหรือmod_perl mod_phpในขณะที่การตั้งค่าแบบดั้งเดิมส่วนใหญ่สามารถทำได้ผ่านทาง FCGI (หรือ WSGI หรือผู้โดยสาร) การมีล่ามในกระบวนการจริงจะเป็นประโยชน์หากคุณต้องการเช่นใช้แผนการรับรองความถูกต้องที่กำหนดเองภายในเว็บเซิร์ฟเวอร์ (เช่นสำหรับ git หรือ svn Redmine / ChiliProject)

โดยทั่วไปเพื่อนของคุณถูกต้อง: สถานการณ์การปรับใช้ทั่วไปส่วนใหญ่สามารถแก้ไขได้ด้วย nginx แต่ Apache ยังคงมีความยืดหยุ่นมากขึ้นหากคุณต้องสร้างสิ่งที่ "พิเศษ" เพิ่มเติม


3

เรื่องราวสั้น ๆ ของ Apache คือ Apache มีปลั๊กอินและชุมชนจำนวนมากที่สร้างขึ้นโดยรอบ Nginx, ได้รับเพียงรอบระยะเวลาอันสั้นเมื่อเปรียบเทียบและดังนั้นจึงยังไม่มีฐานรหัสชุมชน

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


ฉันคิดว่าคุณอาจล้าสมัยเล็กน้อยในสิ่งที่ Nginx สามารถทำได้ในบางพื้นที่มันมีความหลากหลายมากกว่า Apache ขาดพร็อกซี HTTP / 1.1 และ WebDAV ฉันไม่สามารถนึกถึงหลายสิ่งที่มันขาดหายไป
Martin Fjordvald

@MartinFjordvald มีฟังก์ชั่นค่อนข้างน้อยที่ Nginx ตั้งใจเลือกที่จะไม่ทำคุณไม่สามารถบอกได้ว่าพวกเขากำลัง "หายไป" แต่คุณไม่สามารถอ้างได้ว่า Nginx สามารถทำทุกสิ่งที่ Apache สามารถทำได้ มันเป็นการแลกเปลี่ยนและฉันปรบมือให้ Nginx สำหรับตัวเลือกที่พวกเขาทำ
คริส S

เนื่องจากความเห็นเริ่มต้นของฉันรองรับ HTTP / 1.1 proxying ดังนั้นเราจึงไม่สนับสนุนการโฮสต์ webdav และ svn นั่นคือถ้าเราไม่พิจารณาปัญหาต่างๆเช่นโมดูลที่ลิงก์แบบไดนามิกซึ่งเป็นความจริงที่ nginx ได้ตัดสินใจที่จะไม่ทำ
Martin Fjordvald

1

โมดูลจำนวนมากและฐานติดตั้ง ginourmous สำหรับการเริ่มต้น แต่มันไม่ใช่สิ่งที่ Apache มีที่คุณควรจะมองที่เป็นสิ่งที่ Apache ไม่ : มันทำงานวิธีที่ดีกว่าที่จะให้บริการเนื้อหาแบบไดนามิกเช่น PHP, Python, Perl, Java, ฯลฯ

แน่นอนว่าคุณสามารถทำได้ด้วย Nginx เช่นกัน (แต่มันเป็นแฮ็ค IMHO เล็กน้อย) แต่วิธีแก้ปัญหานั้นได้รับการพิสูจน์แล้วว่าทำงานบน Apache ได้ดีกว่าบน NginX ซึ่งในทางกลับกันนั้นดีกว่า Apache ในการรองรับปริมาณงานสูงและยอดเยี่ยม rewriter / reverse proxy

สำหรับแต่ละงานเครื่องมือที่เหมาะสม!


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