หลายคนใช้ apache2 เป็นเว็บเซิร์ฟเวอร์ อย่างไรก็ตาม มีเพียงไม่กี่คนที่คิดที่จะเพิ่มประสิทธิภาพการทำงาน ซึ่งส่งผลโดยตรงต่อความเร็วในการโหลดหน้าเว็บไซต์ ความเร็วของสคริปต์การประมวลผล (โดยเฉพาะ PHP) รวมถึงการเพิ่มภาระของ CPU และจำนวน RAM ที่ใช้เพิ่มขึ้น
ดังนั้นคู่มือต่อไปนี้ควรช่วยเหลือผู้ใช้มือใหม่ (และไม่เพียงเท่านั้น)
ตัวอย่างทั้งหมดด้านล่างนี้ใช้กับ Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3
ดังนั้นขอเริ่มต้น
1. ปิดการใช้งานโมดูลที่ไม่ได้ใช้
วิธีแรกคือการปิดการใช้งานโมดูลที่คุณไม่ได้ใช้:
รายการโมดูลที่ใช้อยู่ในปัจจุบันสามารถดูได้ด้วยคำสั่ง:
apache2ctl -M
หากต้องการปิดการใช้งานโมดูลให้ใช้คำสั่ง:
a2dismod *название модуля*
ดังนั้น หากต้องการเปิดใช้งานโมดูล ให้ใช้คำสั่ง:
a2enmod *название модуля*
โปรดทราบว่าเมื่อใช้ a2dismodจะต้องเขียนชื่อของโมดูลโดยไม่มีโมดูลคำ
เช่น หากคุณอยู่ในเอาท์พุตของคำสั่ง apache2ctl -M ได้เห็น พร็อกซี_โมดูลจากนั้นหากต้องการปิดการใช้งานคุณต้องใช้คำสั่ง - พร็อกซี a2dismod
โมดูลที่โหลดระบบมากที่สุด (จากประสบการณ์ส่วนตัว) คือ:
- PHP, Ruby, Perl และโมดูลอื่นๆ สำหรับภาษาสคริปต์ต่างๆ
- SSL
- เขียนใหม่
- CGI
ดังนั้นในกรณีที่คุณไม่ต้องการโมดูลเหล่านี้ ฉันขอแนะนำให้ปิดการใช้งานโมดูลเหล่านี้
นอกจากนี้หลังจากปิดการใช้งานโมดูลใด ๆ ฉันขอแนะนำให้ใช้คำสั่ง - การกำหนดค่า apache2ctlซึ่งจะตรวจสอบการกำหนดค่าของไซต์ที่ใช้ และหากโมดูลที่ปิดใช้งานใดๆ จำเป็นสำหรับไซต์เหล่านั้น ก็จะทำให้เกิดข้อผิดพลาด
2. การเปลี่ยน MPM (Multi-Processing Module) และใช้ php-fpm
ตามค่าเริ่มต้นหลังการติดตั้ง apache2 จะใช้ MPM Prefork (1 เธรดต่อ 1 การเชื่อมต่อ) ซึ่งจะลดประสิทธิภาพลงอย่างมาก แต่ในขณะเดียวกันก็ปรับปรุงความเสถียรและความปลอดภัย
แต่เพื่อเพิ่มประสิทธิภาพ ฉันขอแนะนำให้ใช้ MPM Worker ซึ่งช่วยให้คุณสามารถใช้หลายเธรดต่อการเชื่อมต่อได้
เพื่อเปิดใช้งานเราใช้คำสั่งต่อไปนี้:
a2dismod mpm_prefork //Отключаем prefork
a2dismod php7.3 //Отключаем модуль php, который зависит от prefork
a2enmod mpm_worker //Включаем worker
อย่างไรก็ตาม เมื่อใช้ Worker คุณอาจประสบปัญหาเนื่องจาก... โมดูล php7.3 ขึ้นอยู่กับโมดูล Prefork
เพื่อแก้ปัญหานี้ มาติดตั้งโมดูล php7.3-fpm ซึ่งจะใช้ในการรันสคริปต์ PHP:
apt-get update && apt-get install php7.3-fpm //Устанавливаем
systemctl enable php7.3-fpm && systemctl start php7.3-fpm //Добавляем в автозагрузку и запускаем
a2enmod php7.3-fpm && a2enconf php7.3-fpm.conf //Включаем модуль и конфиг для него
เป็นที่น่าสังเกตว่าการใช้ php-fpm จะลดจำนวน RAM ที่ใช้โดยกระบวนการ apache2 และเพิ่มความเร็วในการประมวลผลสคริปต์ PHP เล็กน้อย
3 ข้อสรุป
ดังนั้น ด้วยการกระทำง่ายๆ ดังกล่าว เราจึงสามารถเพิ่มประสิทธิภาพและลดภาระบนเครื่องจักรได้ (ในกรณีนี้คือ RPI3)
แน่นอนว่ามีตัวเลือกการเพิ่มประสิทธิภาพอื่น ๆ อีกหลายร้อยตัวเลือก เช่น การเปิดใช้งานการบีบอัด (ซึ่งมีประโยชน์จริงๆ แต่ส่วนใหญ่เปิดใช้งานไว้ตามค่าเริ่มต้นแล้ว) การเปลี่ยนการตั้งค่า MPM (ไฟล์การกำหนดค่า) การปิดใช้งาน HostnameLookups ฯลฯ แต่ในบทความนี้ ฉันพยายาม สะท้อน นี่คือประเด็นที่ช่วยฉันได้มากที่สุด และฉันหวังว่าจะช่วยเหลือผู้อื่นได้
ที่มา: will.com