5 ຄຳ ແນະ ນຳ ເພື່ອຊ່ວຍເພີ່ມປະສິດທິພາບຂອງ Server Web Apache ຂອງທ່ານ


ອີງຕາມບົດລາຍງານທີ່ຜ່ານມາໂດຍ Netcraft (ບໍລິສັດອິນເຕີເນັດທີ່ມີຊື່ສຽງທີ່ໃຫ້ບໍລິການໃນບັນດາສະຖິຕິການ ນຳ ໃຊ້ໂປແກຼມທ່ອງເວັບອື່ນໆ), Apache ຍັງສືບຕໍ່ເປັນເຄື່ອງແມ່ຂ່າຍເວັບທີ່ ນຳ ໃຊ້ຫຼາຍທີ່ສຸດໃນບັນດາເວັບໄຊທ໌ຕ່າງໆແລະຄອມພິວເຕີ້ທີ່ໃຊ້ອິນເຕີເນັດ.

ນອກຈາກນັ້ນ, Apache ຍັງສືບຕໍ່ປະສົບກັບການເຕີບໃຫຍ່ທີ່ໃຫຍ່ທີ່ສຸດໃນບັນດາເຄື່ອງແມ່ຂ່າຍເວັບທີ່ສູງສຸດ, ຕິດຕາມດ້ວຍ Nginx ແລະ IIS. ດັ່ງນັ້ນ, ຖ້າທ່ານເປັນຜູ້ບໍລິຫານລະບົບທີ່ຮັບຜິດຊອບໃນການຄຸ້ມຄອງການຕິດຕັ້ງ Apache, ທ່ານ ຈຳ ເປັນຕ້ອງຮູ້ວິທີການເພື່ອໃຫ້ແນ່ໃຈວ່າເຄື່ອງແມ່ຂ່າຍເວັບຂອງທ່ານປະຕິບັດໄດ້ດີທີ່ສຸດຕາມຄວາມຕ້ອງການຂອງທ່ານ (ຫຼືທ່ານລູກຄ້າ).

ໃນບົດຄວາມນີ້ພວກເຮົາຈະປຶກສາຫາລືກ່ຽວກັບ ຄຳ ແນະ ນຳ ບາງຢ່າງທີ່ຈະຊ່ວຍທ່ານຮັບປະກັນວ່າ Apache ຈະ ດຳ ເນີນງານໄດ້ດີແລະສາມາດຈັດການກັບ ຈຳ ນວນ ຄຳ ຮ້ອງຂໍທີ່ທ່ານຄາດຫວັງຈາກລູກຄ້າທີ່ຢູ່ຫ່າງໄກສອກຫຼີກ.

ເຖິງຢ່າງໃດກໍ່ຕາມ, ກະລຸນາຈື່ໄວ້ວ່າ Apache ບໍ່ໄດ້ຖືກອອກແບບມາເພື່ອຈຸດປະສົງຂອງການ ກຳ ນົດບັນທຶກມາດຕະຖານ - ແຕ່ເຖິງຢ່າງໃດກໍ່ຕາມ, ມັນຍັງມີຄວາມສາມາດໃນການໃຫ້ຜົນງານສູງໃນເກືອບທຸກກໍລະນີການ ນຳ ໃຊ້ທີ່ທ່ານສາມາດຄິດໄດ້.

ຄຳ ແນະ ນຳ ທີ 1: ຮັກສາການປັບປຸງ Apache ໃຫ້ຢູ່ສະບັບລ້າສຸດ

ມັນເວົ້າໂດຍບໍ່ຕ້ອງເວົ້າວ່າການຕິດຕັ້ງ Apache ລຸ້ນລ້າສຸດແມ່ນອາດຈະເປັນ ໜຶ່ງ ໃນສິ່ງ ທຳ ອິດທີ່ທ່ານຕ້ອງການພິຈາລະນາ. ມາຮອດວັນທີ 19 ພະຈິກ 2015, ເວີຊັນທີ່ລ້າສຸດຂອງ Apache ທີ່ມີຢູ່ໃນຫໍສະ ໝຸດ CentOS 7 ແມ່ນ 2.4.6, ໃນຂະນະທີ່ Debian ແມ່ນ 2.4.10.

ເຖິງຢ່າງໃດກໍ່ຕາມ, ມັນອາດຈະມີການປັບປຸງ ໃໝ່ ຫຼືແກ້ໄຂຂໍ້ບົກຜ່ອງເຊິ່ງໄດ້ຖືກເພີ່ມເຂົ້າໃນລຸ້ນທີ່ມີສະຖຽນລະພາບທີ່ອອກມາ ໃໝ່, ເຊິ່ງຫຼັງຈາກນັ້ນກໍ່ເຮັດໃຫ້ສາມາດດາວໂຫລດແລະຕິດຕັ້ງຈາກແຫຼ່ງຂໍ້ມູນໄດ້. ຄຳ ແນະ ນຳ ໃນການລວບລວມແລະຕິດຕັ້ງກໍ່ມີຢູ່ທີ່ນີ້ - ພຽງແຕ່ຈື່ໄວ້ວ່າຖ້າທ່ານເລືອກວິທີການປັບປຸງນີ້, ທ່ານອາດຈະຕ້ອງການ ສຳ ຮອງຂໍ້ມູນການຕັ້ງຄ່າໄຟລ໌/ເວັບໄຊທ໌/ເຈົ້າພາບເສມືນໃນປະຈຸບັນຂອງທ່ານເປັນຂໍ້ຄວນລະວັງ.

ໃນກໍລະນີໃດກໍ່ຕາມ, ທ່ານສາມາດກວດເບິ່ງເວີຊັນທີ່ທ່ານຕິດຕັ້ງຢູ່ໃນປະຈຸບັນດັ່ງຕໍ່ໄປນີ້:

# httpd -v               [On RedHat/CentOS based systems]
# apache2 –v             [On Debian/Ubuntu based systems] 

ຕາມກົດລະບຽບຂອງໂປ້, ຕິດກັບວິທີການປັບປຸງທີ່ສະ ໜອງ ໂດຍຜູ້ຈັດການຊຸດຂອງການແຈກຈ່າຍທີ່ທ່ານເລືອກ ( yum update httpd ຫຼື apache2 ຍົກລະດັບຄວາມປອດໄພໃນ apache2 ), ສຳ ລັບ CentOS ຫຼື Debian, ຕາມ ລຳ ດັບ) ເວັ້ນເສຍແຕ່ວ່າບໍ່ມີທາງອື່ນ. ທ່ານສາມາດອ່ານບົດບັນທຶກການປ່ອຍເວີຊັນລ້າສຸດໃນພາກເອກະສານ Apache ໃນເວັບໄຊທ໌ຂອງໂຄງການ Apache HTTP server.

ຄຳ ແນະ ນຳ ທີ 2: ຖ້າທ່ານ ກຳ ລັງໃຊ້ Kernel ທີ່ມີອາຍຸເກີນ 2.4, ພິຈາລະນາຍົກລະດັບດຽວນີ້

ຍ້ອນຫຍັງ? ຮຸ່ນ Kernel ລຸ້ນ 2.4 ແລະສູງກວ່າມີລະບົບການສົ່ງລະບົບ kernel ທີ່ສາມາດເປີດໃຊ້ໄດ້ໂດຍຄ່າເລີ່ມຕົ້ນ. ວ່າ, ໃນທາງກັບກັນ, ອຳ ນວຍຄວາມສະດວກໃຫ້ແກ່ການໂອນໄຟລ໌ເຄືອຂ່າຍທີ່ມີປະສິດຕິພາບສູງ (ເຊິ່ງເປັນທີ່ຕ້ອງການໃນແງ່ຂອງການສື່ສານຂອງ server-client server) ແລະຊ່ວຍໃຫ້ Apache ສາມາດສົ່ງເນື້ອຫາທີ່ສະຖິດໄວຂຶ້ນແລະດ້ວຍການ ນຳ ໃຊ້ CPU ຕ່ ຳ ກວ່າໂດຍການປະຕິບັດການອ່ານແລະສົ່ງພ້ອມກັນ.

ທ່ານສາມາດເບິ່ງເມັດທີ່ທ່ານຕິດຕັ້ງຢູ່ປະຈຸບັນດ້ວຍ:

# uname -r

ແລະປຽບທຽບມັນກັບແກ່ນ ໃໝ່ ຄົງທີ່ສຸດໃນ www.kernel.org (4.3 ໃນເວລາຂຽນນີ້).

ເຖິງແມ່ນວ່າມັນເປັນຂະບວນການທີ່ບໍ່ມີຈຸດປະສົງ ສຳ ລັບຜູ້ເລີ່ມຕົ້ນ, ການຍົກລະດັບເມັດຂອງທ່ານແມ່ນການອອກ ກຳ ລັງກາຍທີ່ ໜ້າ ສົນໃຈທີ່ຈະຮຽນຮູ້ກ່ຽວກັບພາຍໃນຂອງ Linux.

ຄຳ ແນະ ນຳ ທີ 3: ເລືອກໂມດູນການປະມວນຜົນແບບຫຼາຍຮູບແບບ (MPM) ທີ່ເຮັດວຽກໄດ້ດີທີ່ສຸດ ສຳ ລັບກໍລະນີຂອງທ່ານ

ໃນການປະຕິບັດຕົວຈິງ, MPMs ຂະຫຍາຍການເຮັດວຽກແບບໂມດູນຂອງ Apache ໂດຍໃຫ້ທ່ານຕັດສິນໃຈວິທີການ ກຳ ຫນົດຄ່າຂອງເຊີຟເວີເວັບໄຊຕ໌ເພື່ອຜູກກັບພອດເຄືອຂ່າຍຢູ່ໃນເຄື່ອງ, ຍອມຮັບການຮ້ອງຂໍຈາກລູກຄ້າແລະໃຊ້ຂະບວນການເດັກນ້ອຍ (ແລະກະທູ້, ທາງເລືອກ) ເພື່ອຈັດການກັບການຮ້ອງຂໍດັ່ງກ່າວ.

ເລີ່ມຕົ້ນກັບຮຸ່ນ 2.4, Apache ໃຫ້ MPM ສາມຢ່າງແຕກຕ່າງກັນໃຫ້ເລືອກ, ຂື້ນກັບຄວາມຕ້ອງການຂອງທ່ານ:

<

  • The prefork MPM ໃຊ້ຂະບວນການເດັກຫຼາຍຕົວໂດຍບໍ່ຕ້ອງສາຍ. ແຕ່ລະຂະບວນການຈັດການການເຊື່ອມຕໍ່ແຕ່ລະຄັ້ງໂດຍບໍ່ສ້າງກະທູ້ແຍກຕ່າງຫາກ ສຳ ລັບແຕ່ລະອັນ. ໂດຍບໍ່ຕ້ອງເຂົ້າໄປໃນລາຍລະອຽດຫຼາຍເກີນໄປ, ພວກເຮົາສາມາດເວົ້າໄດ້ວ່າທ່ານຈະຕ້ອງການໃຊ້ MPM ນີ້ເທົ່ານັ້ນເມື່ອຕ້ອງການແກ້ໄຂ ຄຳ ຮ້ອງສະ ໝັກ ທີ່ໃຊ້, ຫຼືຖ້າ ຄຳ ຮ້ອງສະ ໝັກ ຂອງທ່ານ ຈຳ ເປັນຕ້ອງຈັດການກັບ, ໂມດູນທີ່ບໍ່ແມ່ນກະທູ້ທີ່ປອດໄພເຊັ່ນ mod_php.
  • ຜູ້ເຮັດວຽກ ພະນັກງານ MPM ໃຊ້ຫຼາຍກະທູ້ຕໍ່ຂະບວນການຂອງເດັກ, ເຊິ່ງແຕ່ລະກະທູ້ຈັດການເຊື່ອມຕໍ່ ໜຶ່ງ ຄັ້ງຕໍ່ຄັ້ງ. ນີ້ແມ່ນທາງເລືອກທີ່ດີ ສຳ ລັບເຄື່ອງແມ່ຂ່າຍທີ່ມີການຈະລາຈອນສູງຍ້ອນວ່າມັນຊ່ວຍໃຫ້ການເຊື່ອມຕໍ່ພ້ອມໆກັນກັບ RAM ໜ້ອຍ ກວ່າກໍລະນີທີ່ຜ່ານມາ.
  • ສຸດທ້າຍ, ເຫດການ MPM ແມ່ນ MPM ໃນຕອນຕົ້ນໃນການຕິດຕັ້ງ Apache ສ່ວນໃຫຍ່ ສຳ ລັບຮຸ່ນ 2.4 ແລະສູງກວ່າ. ມັນຄ້າຍຄືກັບ MPM ຜູ້ອອກແຮງງານໃນນັ້ນມັນຍັງສ້າງຫລາຍກະທູ້ຕໍ່ຂະບວນການຂອງເດັກແຕ່ມີຂໍ້ດີ: ມັນເຮັດໃຫ້ການເຊື່ອມຕໍ່ KeepAlive ຫຼືບໍ່ເຮັດວຽກ (ໃນຂະນະທີ່ພວກມັນຍັງຢູ່ໃນສະພາບນັ້ນ) ສາມາດຈັດການໄດ້ດ້ວຍກະທູ້ດຽວ, ດັ່ງນັ້ນຈຶ່ງປ່ອຍຄວາມຊົງ ຈຳ ທີ່ສາມາດ ໄດ້ຮັບການຈັດສັນໃຫ້ກະທູ້ອື່ນໆ. MPM ນີ້ບໍ່ ເໝາະ ສົມກັບການ ນຳ ໃຊ້ໂມດູນທີ່ບໍ່ປອດໄພດ້ວຍກະທູ້ເຊັ່ນ mod_php, ສຳ ລັບການທົດແທນ PHP-FPM ນີ້ຕ້ອງໄດ້ຖືກ ນຳ ໃຊ້ແທນ.
  • ເພື່ອກວດສອບ MPM ທີ່ໃຊ້ໂດຍການຕິດຕັ້ງ Apache ຂອງທ່ານ, ທ່ານສາມາດເຮັດໄດ້:

    # httpd -V
    

    ຮູບພາບຂ້າງລຸ່ມນີ້ສະແດງໃຫ້ເຫັນວ່າເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ນີ້ໂດຍສະເພາະແມ່ນໃຊ້ MPM prefork.

    ເພື່ອປ່ຽນແປງສິ່ງນີ້, ທ່ານຈະຕ້ອງແກ້ໄຂ:

    # /etc/httpd/conf.modules.d/00-mpm.conf          [On RedHat/CentOS based systems]
    # /etc/apache2/mods-available/<mpm>.load   [On Debian/Ubuntu based systems]
    

    ບ່ອນທີ່ ສາມາດເປັນ mpm_event, mpm_worker, ຫຼື mpm_prefork.

    ແລະຄວາມບໍ່ສະດວກຕໍ່ສາຍທີ່ໂຫຼດໂມດູນທີ່ຕ້ອງການຄືດັ່ງນັ້ນ:

    LoadModule mpm_event_module modules/mod_mpm_event.so
    

    ໝາຍ ເຫດ: ເພື່ອເຮັດໃຫ້ເຫດການ MPM ເຮັດວຽກຢູ່ Debian, ທ່ານອາດຈະຕ້ອງຕິດຕັ້ງ libapache2-mod-fastcgi ຊຸດຈາກຫ້ອງເກັບທີ່ບໍ່ເສຍຄ່າ.

    ນອກຈາກນັ້ນ, ສຳ ລັບ CentOS ທ່ານຕ້ອງການ php-fpm (ພ້ອມກັບ fcgi ແລະ mod_fcgid) ໃນຂະນະທີ່ Debian ມັນເອີ້ນວ່າ php5-fpm (ພ້ອມກັບ apache2-mpm-event).

    ສຸດທ້າຍ, ແຕ່ບໍ່ຄ່ອຍສຸດ, ໃຫ້ເລີ່ມຕົ້ນເວັບເຊີຟເວີແລະບໍລິການ php-fpm (ຫຼື php5-fpm) ທີ່ຕິດຕັ້ງ ໃໝ່:

    # systemctl restart httpd php-fpm && systemctl enable httpd php-fpm
    
    # systemctl restart apache2 php5-fpm && systemctl enable apache2 php5-fpm
    

    ເຖິງແມ່ນວ່າທ່ານສາມາດຕັ້ງ Apache ໃຫ້ໃຊ້ MPM ສະເພາະ, ການຕັ້ງຄ່າດັ່ງກ່າວສາມາດຖືກ overridden ບົນພື້ນຖານຂອງໂຮດຕໍ່ virtual ໃນແບບດຽວກັນກັບທີ່ໄດ້ລະບຸໄວ້ກ່ອນ ໜ້າ ນີ້.

    ພຽງແຕ່ວາງແທັກທີ່ສອດຄ້ອງກັນເຂົ້າໄປໃນເອກະສານການຕັ້ງຄ່າ ສຳ ລັບແຕ່ລະໂຮດ virtual ແລະທ່ານພ້ອມທີ່ຈະໄປ - ແຕ່ຕ້ອງແນ່ໃຈວ່າທ່ານ ກຳ ລັງໃຊ້ ໜຶ່ງ MPM ແລະ ໜຶ່ງ ດຽວຕໍ່ vhost.

    ສຸດທ້າຍ, ກະລຸນາຮັບຊາບວ່າໂດຍບໍ່ ຄຳ ນຶງເຖິງການແຈກຈ່າຍທີ່ທ່ານເລືອກ, php-fpm ແມ່ນອີງໃສ່ການຈັດຕັ້ງປະຕິບັດຂອງ FastCGI, ນີ້ແມ່ນເຫດຜົນທີ່ຂ້ອຍແນະ ນຳ ການຕິດຕັ້ງຊຸດເພີ່ມເຕີມກ່ອນ ໜ້າ ນີ້.

    ສໍາລັບລາຍລະອຽດແລະຕົວຢ່າງເພີ່ມເຕີມກ່ຽວກັບ php-fpm ແລະວິທີທີ່ມັນສາມາດພ້ອມກັບເຫດການ MPM ເພີ່ມປະສິດທິພາບຂອງ Apache, ທ່ານຄວນອ້າງອີງໃສ່ເອກະສານທາງການ.

    ນີ້ແມ່ນສິ່ງທີ່ຂ້ອຍເຫັນຫຼັງຈາກການປ່ຽນ MPM ໃນຕອນຕົ້ນຈາກ prefork ຫາເຫດການໃນປ່ອງດຽວກັນທີ່ສະແດງຢູ່ໃນຮູບກ່ອນ ໜ້າ ນີ້:

    ໃນ CentOS 7, ທ່ານ ຈຳ ເປັນຕ້ອງຮັບປະກັນວ່າການໃຫ້ບໍລິການ http ແລະ https ຖືກເປີດໃຊ້ຜ່ານ firewall, ແລະອິນເຕີເຟດເຄືອຂ່າຍຖືກເພີ່ມເຂົ້າໃນພື້ນທີ່ເລີ່ມຕົ້ນ.

    ຍົກຕົວຢ່າງ:

    # firewall-cmd --zone=internal --add-interface=tun6to4 
    # firewall-cmd --zone=internal --add-interface=tun6to4 --permanent 
    # firewall-cmd --set-default-zone=internal 
    # firewall-cmd --add-service=http 
    # firewall-cmd --add-service=https 
    # firewall-cmd --add-service=http --permanent 
    # firewall-cmd --add-service=https --permanent 
    # firewall-cmd --reload
    

    ເຫດຜົນທີ່ຂ້ອຍ ກຳ ລັງ ນຳ ສະ ເໜີ ນີ້ແມ່ນຍ້ອນວ່າຂ້ອຍຫາກໍ່ປະສົບບັນຫາທີ່ບໍ່ດົນມານີ້ການຕັ້ງຄ່າການຕັ້ງຄ່າ firewalld ໃນ cloud VPS ໄດ້ປ້ອງກັນ php-fpm ແລະ Apache ບໍ່ສາມາດປະມວນຜົນໄຟລ໌ php.

    ໃນຖານະເປັນການທົດສອບຂັ້ນພື້ນຖານ (ຂ້ອຍແນ່ໃຈວ່າທ່ານສາມາດຄິດເຖິງບັນດາສິ່ງທີ່ສັບສົນຫຼືມີຄວາມກົດດັນຫຼາຍ), ຂ້ອຍຈະສ້າງແຟ້ມ php ທີ່ກວດເບິ່ງຄວາມເປັນຢູ່ຂອງເອກະສານອື່ນທີ່ມີຊື່ວ່າ test.php ໃນບັນທຶກດຽວກັນຂອງສອງ CentOS 7 ເຊີບເວີທີ່ມີຄຸນລັກສະນະແລະຮາດແວຣ໌ດຽວກັນແຕ່ມີ MPM ແຕກຕ່າງກັນ. ນຶ່ງໃນນັ້ນກໍ່ຈະໃຊ້ເຫດການແລະອີກໂຕ ໜຶ່ງ ຈະໃຊ້ prefork:

    ນີ້ແມ່ນລະຫັດ php ທີ່ຂ້ອຍໄດ້ບັນທຶກລົງໃນແຟ້ມຊື່ວ່າ checkiffileexists.php :

    <?php
    $filename = 'test.php';
    
    if (file_exists($filename)) {
        echo "The file $filename exists";
    } else {
        echo "The file $filename does not exist";
    }
    ?>
    

    ຫຼັງຈາກນັ້ນ, ພວກເຮົາຈະ ດຳ ເນີນເຄື່ອງມືດັດຊະນີ Apache (ab) ພ້ອມດ້ວຍ 200 ຄຳ ຮ້ອງພ້ອມກັນຈົນກວ່າ 2000 ຄຳ ຮ້ອງຂໍ ສຳ ເລັດ:

    # ab -k -c 100 -n 2000 localhost/checkiffileexists.php
    

    ລອງທົດສອບແລະປຽບທຽບຜົນໄດ້ຮັບ. ເອົາໃຈໃສ່ກັບສະຖິຕິການປະຕິບັດ:

    ດັ່ງທີ່ທ່ານສາມາດເຫັນໄດ້, ການປະຕິບັດງານຂອງເຊີຟເວີກັບເຫດການແມ່ນສູງກ່ວາລະດັບທີ່ດີເລີດຂອງຄູ່ແຂ່ງໃນທຸກໆດ້ານຂອງການທົດສອບນີ້.

    ຄຳ ແນະ ນຳ ທີ 4: ຈັດສັນ RAM ໃຫ້ສະຫລາດ ສຳ ລັບ Apache

    ບາງທີສິນຄ້າຮາດແວທີ່ ສຳ ຄັນທີ່ສຸດທີ່ຕ້ອງ ຄຳ ນຶງເຖິງແມ່ນ ຈຳ ນວນ RAM ທີ່ຈັດສັນໃຫ້ແຕ່ລະຂັ້ນຕອນຂອງ Apache. ໃນຂະນະທີ່ທ່ານບໍ່ສາມາດຄວບຄຸມເລື່ອງນີ້ໄດ້ໂດຍກົງ, ທ່ານສາມາດ ຈຳ ກັດ ຈຳ ນວນຂະບວນການຂອງເດັກໂດຍຜ່ານ ຄຳ ສັ່ງ MaxRequestWorkers (ເຊິ່ງກ່ອນ ໜ້າ ນີ້ເອີ້ນວ່າ MaxClients ໃນ Apache 2.2) ເຊິ່ງຈະເຮັດໃຫ້ຂໍ້ ຈຳ ກັດໃນການ ນຳ ໃຊ້ RAM ໂດຍ Apache. ອີກເທື່ອຫນຶ່ງ, ທ່ານສາມາດກໍານົດມູນຄ່ານີ້ຕໍ່ຜູ້ໃຫ້ບໍລິການຕໍ່ຫຼືຕໍ່ພື້ນຖານຂອງເຈົ້າພາບເສມືນ.

    ເພື່ອເຮັດສິ່ງນີ້, ທ່ານຄວນ ຄຳ ນຶງເຖິງ ຈຳ ນວນ RAM ໂດຍສະເລ່ຍທີ່ໃຊ້ໂດຍ Apache, ຫຼັງຈາກນັ້ນກໍ່ຄູນມັນຕາມ ຈຳ ນວນ MaxRequestWorkers, ແລະນັ້ນແມ່ນ ຈຳ ນວນ ຈຳ ນວນ ໜ່ວຍ ຄວາມ ຈຳ ທີ່ຈະຖືກຈັດສັນ ສຳ ລັບຂັ້ນຕອນການ ນຳ ໃຊ້ Apache. ສິ່ງ ໜຶ່ງ ທີ່ທ່ານບໍ່ເຄີຍຕ້ອງການໃຫ້ເຄື່ອງແມ່ຂ່າຍເວັບຂອງທ່ານເຮັດຄືເລີ່ມໃຊ້ການແລກປ່ຽນ, ເພາະວ່າມັນຈະເຮັດໃຫ້ການເຮັດວຽກຂອງມັນຫຼຸດລົງ. ດັ່ງນັ້ນ, ທ່ານຄວນຮັກສາການ ນຳ ໃຊ້ RAM ໂດຍ Apache ໃນຂອບເຂດ ຈຳ ກັດທີ່ທ່ານສາມາດຈ່າຍໄດ້ແລະບໍ່ຄວນອີງໃສ່ການແລກປ່ຽນກັບມັນ.

    ຍົກຕົວຢ່າງ, ທ່ອນໄມ້ຕໍ່ໄປນີ້ຈະ ຈຳ ກັດ ຈຳ ນວນລູກຄ້າທີ່ພ້ອມກັນເຖິງ 30. ຖ້າລູກຄ້າເຂົ້າໄປໃນເຈົ້າພາບຫລາຍຂື້ນ, ພວກເຂົາອາດຈະປະສົບກັບຄວາມລ່າຊ້າຫລືຄວາມລົ້ມເຫລວທີ່ບໍ່ສາມາດແກ້ໄຂໄດ້ງ່າຍໂດຍການເຮັດໃຫ້ຕົວທ່ອງເວັບສົດຊື່ນ. ໃນຂະນະທີ່ສິ່ງນີ້ອາດຖືວ່າເປັນສິ່ງທີ່ບໍ່ຕ້ອງການ, ມັນມີສຸຂະພາບແຂງແຮງ ສຳ ລັບເຊີຟເວີແລະໃນໄລຍະຍາວ, ດີທີ່ສຸດ ສຳ ລັບເວັບໄຊທ໌້ຂອງທ່ານເຊັ່ນກັນ.

    ທ່ານສາມາດວາງທ່ອນໄມ້ນີ້ໄວ້ພາຍໃນ /etc/httpd/conf/httpd.conf ຫຼື /etc/apache2/apache2.conf , ຂື້ນກັບວ່າທ່ານ ກຳ ລັງໃຊ້ CentOS ຫຼື Debian.

    ກະລຸນາຮັບຊາບວ່າຫຼັກການດຽວກັນນີ້ໃຊ້ໄດ້ກັບ MPM ທັງ ໝົດ - ຂ້ອຍ ກຳ ລັງໃຊ້ເຫດການຢູ່ນີ້ເພື່ອສືບຕໍ່ແນວຄິດທີ່ລະບຸໄວ້ໃນ ຄຳ ແນະ ນຳ ທີ່ຜ່ານມາ:

    <IfModule mpm_event_module>
        StartServers 3
        MinSpareThreads          25
        MaxSpareThreads          75
        ThreadLimit                      64
        ThreadsPerChild          25
        MaxRequestWorkers    30
        MaxConnectionsPerChild    1000
    </IfModule>
    

    ໃນກໍລະນີໃດກໍ່ຕາມ, ມັນໄດ້ຖືກແນະນໍາໃຫ້ສູງທີ່ທ່ານຈະອ້າງອີງເຖິງ Apache 2.4 docs ເພື່ອເບິ່ງວ່າທິດທາງໃດທີ່ຖືກອະນຸຍາດສໍາລັບ MPM ທີ່ທ່ານເລືອກ.

    ຄຳ ແນະ ນຳ ທີ 5: ຮູ້ ຄຳ ຮ້ອງສະ ໝັກ ຂອງທ່ານ

    ອີງຕາມກົດລະບຽບ, ທ່ານບໍ່ຄວນໂຫຼດໂມດູນ Apache ໃດໆທີ່ບໍ່ ຈຳ ເປັນຕ້ອງເຂັ້ມງວດໃນການເຮັດວຽກຂອງທ່ານ. ນີ້ ຈຳ ເປັນຕ້ອງມີຄວາມຮູ້ຢ່າງ ໜ້ອຍ ກ່ຽວກັບແອັບພລິເຄຊັນທີ່ເຮັດວຽກຢູ່ໃນເຊີບເວີຂອງທ່ານ, ໂດຍສະເພາະຖ້າທ່ານເປັນຜູ້ບໍລິຫານລະບົບແລະມີອີກທີມ ໜຶ່ງ ທີ່ຮັບຜິດຊອບໃນການພັດທະນາ.

    ທ່ານສາມາດລາຍຊື່ໂມດູນທີ່ໂຫລດຢູ່ໃນປະຈຸບັນດ້ວຍ:

    # httpd -M          [On RedHat/CentOS based systems]
    # apache2ctl -M     [On Debian/Ubuntu based systems]
    

    ເພື່ອຍົກເລີກການປິດ/ປິດການໃຊ້ໂມດູນໃນ CentOS, ທ່ານຈະຕ້ອງມີ ຄຳ ເຫັນຕໍ່ກັບເສັ້ນທີ່ເລີ່ມຕົ້ນດ້ວຍ LoadModule (ບໍ່ວ່າຈະຢູ່ໃນເອກະສານການຕັ້ງຄ່າຕົ້ນຕໍຫລືເອກະສານຊ່ວຍໃນພາຍໃນ /etc/httpd/conf.modules.d.

    ໃນທາງກົງກັນຂ້າມ, Debian ໃຫ້ເຄື່ອງມືທີ່ເອີ້ນວ່າ a2dismod ເພື່ອປິດໂມດູນແລະຖືກ ນຳ ໃຊ້ດັ່ງຕໍ່ໄປນີ້:

    # a2dismod module_name
    

    ເພື່ອເຮັດໃຫ້ມັນກັບຄືນໄປບ່ອນ:

    # a2enmod module_name
    

    ບໍ່ວ່າໃນກໍລະນີໃດກໍ່ຕາມ, ຈົ່ງ ຈຳ ໄວ້ວ່າຈະເລີ້ມ Apache ຄືນ ໃໝ່ ເພື່ອການປ່ຽນແປງຈະມີຜົນ.

    ບົດສະຫຼຸບ

    ໃນບົດຂຽນນີ້ພວກເຮົາໄດ້ທົບທວນ 5 ຄຳ ແນະ ນຳ ທີ່ຈະຊ່ວຍໃຫ້ທ່ານສາມາດປັບເຄື່ອງແມ່ຂ່າຍເວັບ Apache ແລະເພີ່ມປະສິດຕິພາບຂອງມັນ. ນອກຈາກນັ້ນ, ທ່ານຄວນຈື່ໄວ້ວ່າການເພີ່ມປະສິດທິພາບແລະການເພີ່ມປະສິດທິພາບໂດຍບໍ່ມີຄວາມປອດໄພແມ່ນບໍ່ມີຄວາມ ໝາຍ, ດັ່ງນັ້ນທ່ານອາດຈະຕ້ອງການອ້າງອີງເຖິງບົດຂຽນ ຄຳ ແນະ ນຳ ທີ່ແຂງແກ່ນຂອງ Apache ໃນ linux-console.net ເຊັ່ນກັນ.

    ເນື່ອງຈາກວ່າພວກເຮົາບໍ່ສາມາດເວົ້າເຖິງທຸກໆດ້ານຂອງຫົວຂໍ້ນີ້ໃນບົດຂຽນນີ້, ບາງທີທ່ານອາດຈະຄິດເຖິງແນວຄິດອື່ນໆທີ່ທ່ານຢາກແບ່ງປັນໃຫ້ກັບຊຸມຊົນອື່ນໆ. ຖ້າເປັນດັ່ງນັ້ນ, ຮູ້ສຶກບໍ່ເສຍຄ່າທີ່ຈະແຈ້ງໃຫ້ພວກເຮົາຮູ້ໂດຍໃຊ້ແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.