ทำไมคุณควรมุ่งเน้นที่การปรับปรุงประสิทธิภาพของ Drupal ด้วย Nginx

เผยแพร่แล้ว: 2018-01-14

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

Drupal มีการอัปเดตตัวเองอย่างต่อเนื่อง และเวอร์ชันใหม่ล่าสุดเป็นเครื่องพิสูจน์ว่า CMS โอเพ่นซอร์สนี้พัฒนาอย่างรวดเร็วจนเป็นหนึ่งในเฟรมเวิร์กที่เป็นที่ต้องการมากที่สุดได้อย่างไร (เว็บไซต์เกือบ 1 ล้านแห่งใช้ Drupal 7 ตามรายงานของ Drupal.org) ใหม่กว่า เวอร์ชันของ Drupal-Drupal 8 ให้ผู้ใช้อยู่ตรงขอบที่นั่งด้วยคุณสมบัติที่น่าตื่นเต้นที่สุดบางอย่าง

คุณสมบัติบางอย่างของ Drupal 8 ได้แก่:

  • บริการเว็บสำเร็จรูป: ไปเป็นวันที่เว็บไซต์ใช้สำหรับเดสก์ท็อปเท่านั้นและบริการเว็บใช้สำหรับเว็บไซต์ที่ใช้บริการจากระบบอื่นเท่านั้น ด้วยอุปกรณ์ที่หลากหลายในภาพ บริการเว็บในโลกปัจจุบันจึงมีความสำคัญมากกว่าที่เคย แม้ว่าบริการเว็บจะได้รับการสนับสนุนโดยโมดูลของบุคคลที่สามใน Drupal 7 แต่ก็ได้รวมอยู่ใน Drupal 8 core แล้ว
  • การปรับปรุงความปลอดภัย: ความปลอดภัยเป็นเรื่องที่ต้องกังวลเสมอมา และด้วยการเพิ่มคุณสมบัติใหม่ Drupal 8 ได้สร้างวิธีการต่างๆ ในการทำให้ระบบมีความปลอดภัยมากขึ้น
  • ง่ายขึ้น & เร็วขึ้น: ด้วย Drupal 8 ทำให้ Drupal API นั้นสงบอย่างสมบูรณ์ ทำให้นักพัฒนาใช้ Angular.js , Ember.js และเครื่องมือแสดงผลอื่นๆ ได้ง่ายขึ้นโดยไม่ต้องยุ่งยากมากนัก
  • การปรับปรุงอุปกรณ์พกพา: ดังที่เราได้กล่าวไปแล้วก่อนหน้านี้ อุปกรณ์มือถือเป็นแรงผลักดันในโลกปัจจุบัน Drupal 8 ให้การสนับสนุนอย่างเต็มที่สำหรับเทมเพลตไซต์บนมือถือ พร้อมด้วยการดูแลระบบแบ็คเอนด์ที่ง่ายดายจากอุปกรณ์มือถือ

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

สถาปัตยกรรมเว็บไซต์ด้วย Drupal Nginx

เว็บไซต์ Drupal จำนวนมากเริ่มใช้เซิร์ฟเวอร์ Apache HTTP เป็นเว็บเซิร์ฟเวอร์ และความจริงที่ว่าคำแนะนำในการกำหนดค่านั้นมีให้ใช้งานอย่างกว้างขวางทำให้เป็นตัวเลือกแรกในบรรดาเจ้าของเว็บไซต์จำนวนมาก แต่เมื่อเว็บไซต์เติบโตขึ้นและเริ่มมีการเข้าชมมากขึ้น นั่นคือเวลาที่ผู้คนเปลี่ยนไปใช้เซิร์ฟเวอร์ NGINX ในขั้นตอนนี้ ด้วยความยากลำบากในการสนับสนุนการเชื่อมต่อมากกว่า 10,000 ครั้งในแต่ละครั้งไปยังเซิร์ฟเวอร์ทั้งหมดหยุดทำงานหรือหยุดทำงาน Drupal และ Apache แบ่งปันปัญหาที่ยากจะเอาชนะ

ด้วยช่องโหว่ของไซต์ Drupal 8 NGINX เป็นตัวเลือกที่องค์กรต้องการเพื่อทำให้สถาปัตยกรรมของไซต์มีเสถียรภาพ แทนที่จะต้องเปลี่ยนเซิร์ฟเวอร์และก่อให้เกิดปัญหา คุณสามารถดำเนินการหลายขั้นตอนเพื่อแก้ไขปัญหาที่เกี่ยวข้องกับประสิทธิภาพดังกล่าวเมื่อไซต์เติบโตขึ้น

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

เว็บเซิร์ฟเวอร์

การแก้ไขด่วนที่สามารถดูแลประสิทธิภาพ ความปลอดภัย และความยืดหยุ่นของเว็บไซต์ Drupal คือการย้ายจาก Apache เป็น NGINX เป็นเว็บเซิร์ฟเวอร์สำหรับเว็บไซต์ของคุณ ปัญหาทั่วไปที่หลอกหลอนเว็บเซิร์ฟเวอร์ส่วนใหญ่คือปัญหา C10K - ปัญหาที่เว็บเซิร์ฟเวอร์มีในการสนับสนุนการเชื่อมต่อพร้อมกัน (โดยปกติไม่เกิน 10,000 การเชื่อมต่อในครั้งเดียว) NGINX ได้รับการออกแบบมาเพื่อแก้ปัญหานี้โดยเฉพาะ ด้วยความสามารถในการเรียกใช้การวนซ้ำของเหตุการณ์ต่อเนื่องที่จัดการคำขอที่เกิดขึ้น โดยไม่ต้องจัดสรรทรัพยากรให้กับผู้ร้องขอ Drupal NGINX ขจัดโอเวอร์เฮดที่กระบวนการฟอร์กกระบวนการใหม่สำหรับการเชื่อมต่อใหม่แต่ละครั้ง

ย้อนกลับพร็อกซีเซิร์ฟเวอร์ด้วย Drupal 8 Nginx

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

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

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

แอปพลิเคชันเซิร์ฟเวอร์หลายตัว & การทำโหลดบาลานซ์

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

การมีแอพพลิเคชั่นเซิร์ฟเวอร์หลายตัวหมายความว่าต้องมีเทคนิคในการตัดสินใจว่าเซิร์ฟเวอร์ใดจะได้รับคำขอครั้งต่อไป เทคนิคมีตั้งแต่วิธีการง่ายๆ ไปจนถึงวิธีที่ซับซ้อน โดยระบบจะตรวจสอบเซิร์ฟเวอร์แต่ละเครื่อง เพื่อค้นหาว่าเซิร์ฟเวอร์ใดยุ่งน้อยที่สุดก่อนที่จะส่งคำขอ นี้เรียกว่าโหลดบาลานซ์ เซิร์ฟเวอร์ NGINX และ NGINX Plus รองรับห้าเทคนิคการจัดสรรภาระงานที่ช่วยปรับปรุงประสิทธิภาพของ Drupal

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