เว็บเซิร์ฟเวอร์
nginx vs Apache: เซิร์ฟเวอร์ใดรันเวิร์กโหลดใด
nginx และ Apache เป็นสองเอ็นจิ้นที่สแต็กโฮสติ้งสามารถสร้างขึ้นได้ และการต่อสู้จะสิ้นสุดลงทันทีที่มีการตั้งชื่อเวิร์กโหลด nginx เป็นเครื่องที่ขับเคลื่อนด้วยเหตุการณ์และมีขนาดเล็กสำหรับเนื้อหาคงที่และการทำพร็อกซีย้อนกลับ Apache เป็นเซิร์ฟเวอร์แอปพลิเคชันที่มีโมดูลมากมายซึ่งมีการแทนที่ไดเร็กทอรีและระบบนิเวศมีโฮสติ้งที่ใช้ร่วมกัน นี่คือตารางการตัดสินใจที่ตรงไปตรงมาเบื้องหลังบทความเฉพาะทั้งสองบทความ
ประเด็นสำคัญ
- โมเดลการทำงานพร้อมกันจะตัดสินความได้เปรียบ: ลูปเหตุการณ์ async ของ nginx จัดการการเชื่อมต่อพร้อมกันนับพันครั้งด้วยกระบวนการของผู้ปฏิบัติงานจำนวนหนึ่ง ซึ่งเป็นเหตุผลว่าทำไมจึงควบคุมระดับสแตติกหนักและพร็อกซีย้อนกลับ MPM เหตุการณ์ของ Apache ปิดช่องว่างนั้นได้มาก แต่ยังคงจัดสรรต่อการเชื่อมต่อบนฮาร์ดแวร์เดียวกันมากขึ้น
- ปรัชญาการกำหนดค่าขัดแย้งกัน: Apache มี .htaccess และการแทนที่ต่อไดเร็กทอรี (ความสะดวกสบายในการก่อตั้งโฮสติ้งที่ใช้ร่วมกัน) ในขณะที่การกำหนดค่า nginx นั้นคงที่ต่อไซต์ รวมถึงไฟล์ที่มีระเบียบวินัยในการโหลดซ้ำ เอฟเฟกต์ในแต่ละวันเป็นแบบทีม ใครแก้ไขการกำหนดค่า และที่ไหน
- สแต็กไฮบริดนั้นถูกต้องตามกฎหมาย ไม่ใช่ cop-out: nginx ที่อยู่ข้างหน้าเป็นตัวยุติ TLS และเซิร์ฟเวอร์แบบคงที่ โดยมี Apache อยู่ด้านหลังสำหรับแอปพลิเคชัน เป็นรูปแบบที่ผ่านการทดสอบการต่อสู้ซึ่งยังคงรักษาเครื่องมือ htaccess ในขณะที่คว้าประสิทธิภาพของ nginx edge; ค่าใช้จ่ายเป็นอีกชั้นหนึ่งในการแก้ไขปัญหาและตรวจสอบ
- โดยที่แต่ละเอ็นจิ้นชนะทันที: nginx ชนะการเชื่อมต่อที่ต้องใช้พร็อกซีที่หนักหน่วง งาน Keep-alive Edge และการระบายไคลเอ็นต์ที่ช้า Apache ได้รับพลังการกำหนดค่าต่อไดเรกทอรี ความเข้ากันได้ของโมดูลแบบเดิม และคุณสมบัติโฮสติ้งที่ใช้ร่วมกัน mod_security/mod_php-class ที่ไม่มีระบบนิเวศอื่นใดที่เติบโตเต็มที่
- LiteSpeed เป็นตัวเลือกที่สามที่โฮสต์จำนวนมากเข้าถึงได้ (บทความเฉพาะของเรากล่าวถึง): ความเข้ากันได้ของ Apache แบบดรอปอินกับการทำงานพร้อมกันที่ขับเคลื่อนด้วยเหตุการณ์ ได้รับใบอนุญาตต่อคอร์ ดังนั้นจึงมีเส้นทางกลาง 'แทนที่ Apache, Keep config' สำหรับเศรษฐศาสตร์โฮสติ้งที่ใช้ร่วมกัน
- ขั้นตอนการตัดสินใจที่ยึดถือในหมวดหมู่เว็บเซิร์ฟเวอร์ของเรา: ตั้งชื่อปริมาณงาน (nginx ที่ Edge, Apache ที่อยู่เบื้องหลังแอป htaccess ที่ใช้งานหนัก), รักษาทั้งสองบทบาทให้ชัดเจนเมื่อไฮบริด, เปรียบเทียบการรับส่งข้อมูลของคุณเอง (ไม่ใช่การวัดประสิทธิภาพแบบนิตยสาร) และจำไว้ว่านี่คือการตัดสินใจเดียวที่คุณสามารถทำซ้ำได้เนื่องจากกลไกทั้งสองอยู่ร่วมกันอย่างมีความสุข
บันทึกจากหน้างาน
ลูกค้าที่สอนเราเกี่ยวกับนิสัยการใช้สแต็กแบบไฮบริด: nginx อยู่ข้างหน้าสำหรับ TLS และสแตติกส์ ส่วน Apache อยู่เบื้องหลังแบกรับตำนาน htaccess มานานถึง 12 ปี ไม่มีใครกล้าเขียนใหม่ คำตอบที่ตรงไปตรงมาไม่ใช่ 'โยกย้ายไปยัง nginx' แต่เป็น 'ตั้งชื่อปริมาณงานต่อระดับ' พวกเขายังคงใช้รูปทรงนั้นมาจนทุกวันนี้ ไร้ความตื่นเต้นและได้รับการตกแต่งให้พร้อมใช้งาน
คำถามที่พบบ่อย
เราจำเป็นต้องเลือกอย่างใดอย่างหนึ่งหรือไม่?
ไม่: Reverse Proxy ที่อยู่ด้านหน้าแอปพลิเคชันเซิร์ฟเวอร์เป็นรูปแบบที่ทันสมัยตามปกติ การตัดสินใจที่แท้จริงเพียงอย่างเดียวคือเครื่องยนต์ตัวไหนจะไปที่ไหน การวิ่งทั้งสองอย่างถือเป็นการฝึกฝนมาตรฐาน ไม่ใช่การยอมรับความพ่ายแพ้
ไหนเร็วกว่าสำหรับ WordPress?
ด้วยเลเยอร์แคชที่ดี ทั้งสาม (nginx, Apache, LiteSpeed) ให้บริการ WordPress ได้ดี ลำดับสุดท้ายในการทดสอบของเราอยู่ที่การปรับแต่งแคชมากกว่าเครื่องยนต์ ตัวเลือกกลไกมีความสำคัญที่ Edge และระดับพร็อกซีมากกว่าที่อยู่เบื้องหลังแคช
อันไหนเรียนง่ายกว่ากัน?
ทั้งสองสามารถเรียนรู้ได้ภายในหนึ่งสัปดาห์สำหรับโฮสติ้งเสมือนขั้นพื้นฐานและ TLS แรงเสียดทานแตกต่าง: เอกสาร Apache คุ้นเคยกับทหารผ่านศึกในอุตสาหกรรมมากกว่า การกำหนดค่า nginx นั้นสั้นกว่า แต่เปิดเผยปุ่มควบคุมพร็อกซีก่อนหน้านี้
มีความแตกต่างด้านความปลอดภัยที่สำคัญหรือไม่?
ทั้งสองมี CVE และมีความปลอดภัยทันทีเมื่อแกะกล่องในเวอร์ชันที่ได้รับการบำรุงรักษา พื้นผิวความเสี่ยงคือพื้นผิวการกำหนดค่า วัฒนธรรม .htaccess และโมดูลดั้งเดิมสำหรับ Apache โมดูลที่คอมไพล์โดยบุคคลที่สาม รวมถึงข้อผิดพลาดในลำดับการกำหนดค่าสำหรับ nginx ความเร็วแพตช์มีความสำคัญมากกว่ายี่ห้อเครื่องยนต์
Kinetikatech ช่วยเรื่อง เว็บเซิร์ฟเวอร์ ได้อย่างไร
ข้อเสนอง่าย ๆ แบบนี้: การตั้งค่า การปรับแต่ง และความปลอดภัยของเว็บเซิร์ฟเวอร์ในสภาพแวดล้อมโปรดักชันและงานพัฒนา ส่งให้บริการ การเพิ่มความเร็วเว็บไซต์และการจัดการเซิร์ฟเวอร์ ของเราดูแล มีการประเมินอย่างเหมาะสม ลงมือแบบสะอาด และมีคนเฝ้าตลอด 24 ชั่วโมง