อาปาเช่ และ Nginx เชื่อมต่อกันด้วยโซ่เส้นเดียว

วิธีการใช้งานชุดค่าผสม Apache & Nginx ใน Timeweb

สำหรับหลายๆ บริษัท Nginx + Apache + PHP เป็นการผสมผสานที่ธรรมดาและธรรมดามาก และ Timeweb ก็ไม่มีข้อยกเว้น อย่างไรก็ตาม การทำความเข้าใจอย่างชัดเจนว่านำไปปฏิบัติอย่างไรนั้นน่าสนใจและมีประโยชน์

อาปาเช่ และ Nginx เชื่อมต่อกันด้วยโซ่เส้นเดียว

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

การตั้งค่าพื้นฐาน อาปาเช่ ดำเนินการในไฟล์การกำหนดค่าของ Apache เอง และการตั้งค่าสำหรับไซต์ไคลเอ็นต์เกิดขึ้นผ่าน ไฟล์ .htaccess. .htaccess เป็นไฟล์กำหนดค่าที่ไคลเอนต์สามารถกำหนดค่ากฎและการทำงานของเว็บเซิร์ฟเวอร์ได้อย่างอิสระ การตั้งค่านี้จะใช้กับเว็บไซต์ของเขาโดยเฉพาะ ตัวอย่างเช่น ด้วยฟังก์ชันการทำงานของ Apache ผู้ใช้สามารถเปลี่ยนโหมดการทำงานภายในเวอร์ชัน PHP เดียวกันจาก mod_php เป็น mod_cgi; คุณสามารถตั้งค่าการเปลี่ยนเส้นทาง การเพิ่มประสิทธิภาพสำหรับ SEO URL ที่สะดวก ข้อจำกัดบางประการสำหรับ PHP

Nginx ใช้เป็นพร็อกซีเซิร์ฟเวอร์เพื่อเปลี่ยนเส้นทางการรับส่งข้อมูลไปยัง Apache และเป็นเว็บเซิร์ฟเวอร์เพื่อแสดงเนื้อหาแบบคงที่ นอกจากนี้เรายังได้พัฒนาโมดูลความปลอดภัยสำหรับ Nginx ที่ช่วยให้เราสามารถปกป้องข้อมูลผู้ใช้ของเราได้ เช่น เพื่อแยกสิทธิ์การเข้าถึง

สมมติว่ามีผู้ใช้เยี่ยมชมเว็บไซต์ของลูกค้าของเรา ขั้นแรก ผู้ใช้จะเข้าสู่ Nginx ซึ่งให้บริการเนื้อหาแบบคงที่ มันเกิดขึ้นทันที จากนั้น เมื่อพูดถึงการโหลด PHP Nginx จะส่งต่อคำขอไปยัง Apache และ Apache ร่วมกับ PHP ได้สร้างเนื้อหาแบบไดนามิกแล้ว

คุณลักษณะของชุด Apache & Nginx ใน Timeweb

โฮสติ้งเสมือนของเราใช้ 2 รูปแบบการดำเนินงานหลักสำหรับ Apache และ Nginx: แบ่งปันและทุ่มเท.

โครงการที่ใช้ร่วมกัน

รูปแบบนี้ใช้สำหรับผู้ใช้ส่วนใหญ่ มีความโดดเด่นด้วยความเรียบง่ายและความเข้มข้นของทรัพยากร: โครงการที่ใช้ร่วมกันใช้ทรัพยากรน้อยลง ซึ่งเป็นเหตุผลว่าทำไมภาษีจึงถูกกว่า ตามรูปแบบนี้ เซิร์ฟเวอร์รันหนึ่ง Nginx ซึ่งช่วยให้สามารถตอบสนองคำขอของผู้ใช้ทั้งหมด และอินสแตนซ์ของ Apache หลายอินสแตนซ์

โครงการที่ใช้ร่วมกันได้รับการปรับปรุงมาเป็นเวลานาน: เราค่อย ๆ แก้ไขข้อบกพร่อง สะดวกสามารถทำได้โดยไม่ต้องแก้ไขซอร์สโค้ด

อาปาเช่ และ Nginx เชื่อมต่อกันด้วยโซ่เส้นเดียว
โครงการที่ใช้ร่วมกัน

โครงการเฉพาะ

Dedicated ต้องใช้ทรัพยากรมากขึ้น ดังนั้นภาษีจึงมีราคาแพงกว่าสำหรับลูกค้า ในรูปแบบเฉพาะ ลูกค้าแต่ละรายจะได้รับ Apache แยกต่างหาก ทรัพยากรที่นี่สงวนไว้สำหรับลูกค้า โดยจัดสรรไว้โดยเฉพาะ วิธีการทำงาน: มี PHP หลายเวอร์ชันบนเซิร์ฟเวอร์ เรารองรับเวอร์ชัน 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4 ดังนั้น PHP แต่ละเวอร์ชันจึงมีการเปิดตัว Apache ของตัวเอง

อาปาเช่ และ Nginx เชื่อมต่อกันด้วยโซ่เส้นเดียว
โครงการเฉพาะ

โซนปลอดภัย การตั้งค่าโซนใน Nginx

ก่อนหน้านี้ สำหรับ Nginx เราใช้โซน (โซน) หน่วยความจำที่ใช้ร่วมกันจำนวนมาก - หนึ่งบล็อกเซิร์ฟเวอร์ต่อโดเมน การตั้งค่านี้ต้องใช้ทรัพยากรจำนวนมาก เนื่องจากมีการสร้างโซนแยกต่างหากสำหรับแต่ละไซต์ อย่างไรก็ตาม ในการตั้งค่า Nginx ไซต์ส่วนใหญ่เป็นประเภทเดียวกัน จึงสามารถวางไว้ในโซนเดียวได้ด้วยการใช้คำสั่งแผนที่ในโมดูล ngx_http_map_moduleซึ่งช่วยให้คุณระบุการโต้ตอบได้ ตัวอย่างเช่น เรามีเทมเพลตโซนที่เราต้องระบุตัวแปร: เส้นทางไปยังไซต์ เวอร์ชัน PHP ผู้ใช้ ดังนั้นการอ่านการกำหนดค่า Nginx อีกครั้งซึ่งก็คือการโหลดซ้ำจึงถูกเร่งขึ้น

การกำหนดค่านี้ช่วยประหยัดทรัพยากร RAM ได้อย่างมากและเร่งความเร็ว Nginx

โหลดซ้ำจะไม่ทำงาน!

ในรูปแบบที่ใช้ร่วมกัน เราไม่จำเป็นต้องโหลด Apache ซ้ำเมื่อเปลี่ยนการตั้งค่าเว็บไซต์ ก่อนหน้านี้ เมื่อลูกค้ารายหนึ่งต้องการเพิ่มโดเมนหรือเปลี่ยนเวอร์ชัน PHP จำเป็นต้องมีการโหลด Apache ซ้ำ ซึ่งนำไปสู่ความล่าช้าในการตอบสนองและส่งผลเสียต่อประสิทธิภาพของไซต์

เรากำจัดการโหลดซ้ำโดยการสร้างการกำหนดค่าแบบไดนามิก ขอบคุณ mpm-itk (โมดูล Apache) แต่ละกระบวนการทำงานเป็นผู้ใช้แยกกันซึ่งจะเป็นการเพิ่มระดับความปลอดภัย วิธีนี้ช่วยให้คุณถ่ายโอนข้อมูลเกี่ยวกับผู้ใช้และ document_root ของเขาจาก Nginx ไปยัง Apache2 ดังนั้น Apache จึงไม่มีการกำหนดค่าไซต์ แต่จะรับการกำหนดค่าแบบไดนามิก และไม่จำเป็นต้องโหลดซ้ำอีกต่อไป

อาปาเช่ และ Nginx เชื่อมต่อกันด้วยโซ่เส้นเดียว
การกำหนดค่าสคีมาที่ใช้ร่วมกัน

แล้วด็อกเกอร์ล่ะ?

บริษัทหลายแห่งได้เปลี่ยนไปใช้ระบบที่ใช้คอนเทนเนอร์ ขณะนี้ Timeweb กำลังพิจารณาถึงความเป็นไปได้ของการเปลี่ยนแปลงดังกล่าว แน่นอนว่าทุกการตัดสินใจมีข้อดีและข้อเสีย

นอกจากข้อดีที่ปฏิเสธไม่ได้แล้ว ระบบคอนเทนเนอร์ยังให้ทรัพยากรแก่ผู้ใช้น้อยลงอีกด้วย ใน Timeweb ต้องขอบคุณรูปแบบการโฮสต์ที่อธิบายไว้ ผู้ใช้จึงไม่มีข้อจำกัดในด้าน RAM ได้รับทรัพยากรมากกว่าในคอนเทนเนอร์ นอกจากนี้ ผู้ใช้อาจโหลดโมดูล Apache มากกว่านี้

Timeweb ขับเคลื่อนเว็บไซต์ประมาณ 500 แห่ง เรามีความรับผิดชอบอย่างยิ่ง และไม่ทำการเปลี่ยนแปลงในทันทีและไม่ยุติธรรมกับสถาปัตยกรรมที่ซับซ้อน ชุดค่าผสม Apache & Nginx มีความน่าเชื่อถือและผ่านการทดสอบตามเวลา ในทางกลับกัน เราพยายามที่จะบรรลุประสิทธิภาพสูงสุดผ่านการกำหนดค่าที่เป็นเอกลักษณ์

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

ที่มา: will.com

เพิ่มความคิดเห็น