เป็นเวลากว่าสองทศวรรษแล้วที่ Apache ได้เปลี่ยนแปลงตลาดเว็บเซิร์ฟเวอร์ที่กำลังหดตัว Nginx ไม่เพียงแต่ตามทัน Apache เท่านั้น แต่ยังเป็นตัวเลือกของเว็บไซต์ที่มีการเข้าชมสูงจำนวนมากอีกด้วย ผู้ใช้ Apache อาจไม่เห็นด้วยกับปัญหานี้ ด้วยเหตุนี้จึงเป็นเรื่องยากที่จะสรุปได้ว่าเว็บโฮสต์ใดดีกว่า ความจริงก็คือทั้ง Apache และ Nginx เป็นส่วนสำคัญของเว็บสแต็คที่สมบูรณ์ (LAMP และ LEMP) และตัวเลือกสุดท้ายขึ้นอยู่กับความต้องการของแต่ละบุคคล
ตัวอย่างเช่น ผู้ใช้เว็บไซต์ Drupal มักจะเลือก Apache ในขณะที่ ผู้ใช้ WordPressดูเหมือนจะชอบ Nginx มากกว่า ดังนั้น เป้าหมายของบทความนี้คือการช่วยให้คุณเข้าใจความต้องการของตนเองได้ดีขึ้น แทนที่จะให้คำแนะนำแบบเหมารวมสำหรับทุกคน การเปรียบเทียบระหว่าง Nginx และ Apache ต่อไปนี้จะให้ภาพรวมที่แม่นยำแก่คุณ
Nginx หรือ Apache เป็นเซิร์ฟเวอร์ที่ดีกว่าหรือไม่
1. ความนิยม
ในปี 2012 เว็บไซต์มากกว่า 65% ใช้ Apache ความนิยมไม่ได้เพียงเพราะประวัติศาสตร์อันยาวนานของ Apache เท่านั้น นี่เป็นหนึ่งในซอฟต์แวร์บุกเบิกกลุ่มแรกสำหรับการพัฒนาเวิลด์ไวด์เว็บ อย่างไรก็ตาม ยุคสมัยมีการเปลี่ยนแปลง จากข้อมูลของ W3Tech.com ณ วันที่ 14 มกราคม 2019 จำนวนเว็บไซต์ที่ใช้เซิร์ฟเวอร์ Apache (44.4%) สูงกว่า Nginx (40.9%) เพียงเล็กน้อยเท่านั้น Nginx และ Apache ครองตลาดเว็บเซิร์ฟเวอร์เกือบ 85%
เมื่อพูดถึงเว็บไซต์ที่มีการเข้าชมสูง แผนภูมิต่อไปนี้น่าสนใจ โดยเฉพาะอย่างยิ่ง Nginx อยู่เหนือ Apache แต่ต่ำกว่า Google Servers ซึ่งเป็นบริการที่ให้บริการเซิร์ฟเวอร์สำหรับเว็บไซต์เช่นYouTube , Gmail และ Drive
เว็บไซต์จำนวนมากได้ย้ายจาก Apache ไปยัง Nginx แน่นอนว่า Nginx ถือเป็นเว็บเซิร์ฟเวอร์ที่ใหม่และทันสมัยกว่า ไซต์ที่มีการเข้าชมสูงบน Apache เช่น Wikipedia และ New York Times มักใช้พร็อกซี HTTP ส่วนหน้า เช่น Varnish
สรุป : ช่องว่างความนิยมระหว่าง Apache และ Nginx กำลังแคบลงอย่างรวดเร็ว ในแง่ของปัจจัยนี้ Apache และ Nginx มีความเชื่อมโยงกัน
2. ความเร็ว
ลักษณะสำคัญของเว็บเซิร์ฟเวอร์ที่ดีคือต้องทำงานเร็ว รวมถึงรองรับการเชื่อมต่อและการรับส่งข้อมูลได้อย่างง่ายดายจากทุกที่ เพื่อวัดความเร็วเซิร์ฟเวอร์ บทความนี้ได้เปรียบเทียบเว็บไซต์ท่องเที่ยวยอดนิยมสองแห่งที่ใช้ Apache (เอ็กซ์พีเดีย.com) และ Nginx (Booking.com) การใช้เครื่องมือออนไลน์ที่เรียกว่า Bitcatcha ทำการเปรียบเทียบกับเซิร์ฟเวอร์หลายเครื่องและวัดเทียบกับเกณฑ์มาตรฐาน 200+ ms ของ Google Booking.com ที่ใช้ Nginx ได้รับการจัดอันดับว่า “รวดเร็วเป็นพิเศษ” ในทางตรงกันข้าม Expedia.com ที่ทำงานบน Apache ได้รับการจัดอันดับ “สูงกว่าค่าเฉลี่ยและสามารถปรับปรุงได้”
หากคุณใช้เว็บไซต์ท่องเที่ยวทั้งสองแห่งนี้หลายครั้ง คุณสามารถยืนยันได้ว่า Expedia ส่งคืนผลลัพธ์การค้นหาได้ช้ากว่าการจองเล็กน้อย
ด้านล่างนี้เป็นการเปรียบเทียบระหว่างสองโฮสต์สำหรับเว็บไซต์อื่นสองสามแห่ง Nginx จะเร็วกว่าในกรณีส่วนใหญ่ด้านล่างโดยมีข้อยกเว้นหนึ่งข้อ
สรุป : Nginx ชนะรอบนี้
3. ความปลอดภัย
ทั้ง Nginx และ Apache ให้ความสำคัญกับความปลอดภัยบนเว็บไซต์ของตนอย่างจริงจัง ไม่มีระบบที่แข็งแกร่งจะสมบูรณ์ ได้หากไม่มีมาตรการตอบโต้การโจมตี DDoSมัลแวร์ และฟิชชิ่งเซิร์ฟเวอร์ทั้งสองจะเผยแพร่รายงานความปลอดภัยและคำแนะนำเป็นระยะๆ เพื่อให้มั่นใจว่าความปลอดภัยได้รับการปรับปรุงในทุกระดับ
สรุป : Nginx และ Apache เสมอกันอีกครั้งในรอบนี้
4. การเชื่อมต่อพร้อมกัน
สิ่งหนึ่งที่ควรทราบก็คือ Apache ไม่สามารถเปรียบเทียบกับขนาดและความสามารถของ Nginx ได้ในบางแง่ ท้ายที่สุดแล้ว Nginx ได้รับการออกแบบมาเพื่อเร่งความเร็วตัวจัดการ FastCGI และ SCGI อย่างไรก็ตาม ตั้งแต่ Apache 2.4 เป็นต้นไป (เวอร์ชันเริ่มต้น) มีการปรับปรุงจำนวนการเชื่อมต่อพร้อมกันอย่างมาก การปรับปรุงนี้มีความก้าวหน้าไปมากเพียงใดจึงคุ้มค่าที่จะตรวจสอบ
จากการทดสอบที่ Loadimpact.com บทความนี้จะเปรียบเทียบ Booking.com (Nginx) กับ Expedia.com (Apache) อีกครั้ง สำหรับผู้ใช้เสมือน 25 ราย ไซต์ Nginx สามารถบันทึกคำขอได้ 200 คำขอต่อวินาที ซึ่งสูงกว่า Apache 2.5 เท่า (80 คำขอต่อวินาที) แน่นอนว่าหากคุณมีเว็บไซต์ที่มีการเข้าชมสูงโดยเฉพาะ Nginx ก็เป็นตัวเลือกที่ปลอดภัยกว่า
สรุป : Nginx ชนะรอบนี้
5. ความยืดหยุ่น
โฮสต์เว็บต้องมีความยืดหยุ่นพอที่จะปรับแต่งได้ Apache ทำได้ค่อนข้างดีผ่านการใช้เครื่องมือ .htaccess ที่ Nginx ไม่รองรับ ช่วยให้สามารถกระจายอำนาจงานผู้ดูแลระบบได้ ผู้ดูแลระบบบุคคลที่สามและผู้ดูแลระบบระดับที่สองอาจถูกป้องกันไม่ให้เข้าถึงเซิร์ฟเวอร์หลัก นอกจากนี้ Apache ยังรองรับโมดูลมากกว่า 60 โมดูล ทำให้สามารถปรับขนาดได้สูง นั่นเป็นเหตุผลว่าทำไม Apache จึงได้รับความนิยมมากขึ้นจากผู้ให้บริการโฮสติ้งแบบแชร์
สรุป : Apache ชนะรอบนี้
พารามิเตอร์อื่นๆ
ก่อนหน้านี้ Nginx ไม่มีการรองรับระบบปฏิบัติการ Windows ที่ดีนัก ไม่เหมือน Apache อย่างไรก็ตาม เรื่องนี้ไม่เป็นเช่นนั้นอีกต่อไป นอกจากนี้ Apache ยังถือว่าค่อนข้างอ่อนแอในแง่ของการปรับสมดุลโหลดและพร็อกซีสำรอง แต่ทุกอย่างเปลี่ยนไปแล้ว!
ผลลัพธ์สุดท้าย
Nginx ชนะอย่างหวุดหวิดด้วยสกอร์ 2-1 ด้วยเหตุนี้ การเปรียบเทียบวัตถุประสงค์ระหว่าง Nginx และ Apache ในแง่ของข้อกำหนดทางเทคนิคจะทำให้ได้ภาพรวมที่สมบูรณ์ ข้อสรุปสุดท้ายคือโฮสต์เว็บทั้งสองมีประโยชน์ในแบบของตัวเอง
แม้ว่า Apache ควรใช้กับเซิร์ฟเวอร์ส่วนหน้า (ซึ่ง Nginx เองก็เป็นตัวเลือกสำหรับ) แต่ Nginx ก็สามารถทำได้ดีกว่าด้วยการปรับแต่งและความยืดหยุ่นที่มากขึ้น