Ramai orang menggunakan apache2 sebagai pelayan web. Walau bagaimanapun, beberapa orang berfikir tentang mengoptimumkan prestasinya, yang secara berkadar secara langsung mempengaruhi kelajuan pemuatan halaman tapak, kelajuan skrip pemprosesan (khususnya php), serta peningkatan beban CPU dan peningkatan jumlah RAM yang digunakan.
Oleh itu, manual berikut harus membantu pengguna pemula (dan bukan sahaja).
Semua contoh di bawah telah digunakan pada Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.
Jadi, mari kita mulakan.
1. Melumpuhkan modul yang tidak digunakan
Kaedah pertama ialah dengan hanya melumpuhkan modul yang anda tidak gunakan:
Senarai modul yang sedang digunakan boleh dilihat dengan arahan:
apache2ctl -M
Untuk melumpuhkan modul, gunakan arahan:
a2dismod *Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ*
Sehubungan itu, untuk mendayakan modul, gunakan arahan:
a2enmod *Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ*
Sila ambil perhatian bahawa apabila menggunakan a2dismod, nama modul mesti ditulis tanpa perkataan modul itu sendiri.
Sebagai contoh, jika anda berada dalam output arahan apache2ctl -M melihat modul_proksi, kemudian untuk melumpuhkannya anda perlu menggunakan arahan - proksi a2dismod
Modul yang paling banyak memuatkan sistem (daripada pengalaman peribadi) ialah:
- PHP, Ruby, Perl dan modul lain untuk pelbagai bahasa skrip
- SSL
- Tulis semula
- CGI
Jadi dalam kes di mana anda tidak memerlukan modul ini, saya cadangkan untuk melumpuhkan modul ini.
Juga, selepas melumpuhkan mana-mana modul, saya cadangkan menggunakan arahan - apache2ctl configtest, yang akan menyemak konfigurasi tapak yang digunakan dan jika mana-mana modul yang dilumpuhkan diperlukan untuk mereka, ia akan menjana ralat.
2. Menukar MPM (Modul Berbilang Pemprosesan) dan menggunakan php-fpm
Secara lalai, selepas pemasangan, apache2 menggunakan MPM Prefork (1 utas setiap 1 sambungan), yang mengurangkan prestasi dengan ketara, tetapi pada masa yang sama meningkatkan kestabilan dan keselamatan.
Tetapi untuk mengoptimumkan prestasi, saya mengesyorkan menggunakan MPM Worker, yang membolehkan anda menggunakan berbilang benang bagi setiap sambungan.
Untuk membolehkannya kami menggunakan arahan berikut:
a2dismod mpm_prefork //ΠΡΠΊΠ»ΡΡΠ°Π΅ΠΌ prefork
a2dismod php7.3 //ΠΡΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ php, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ prefork
a2enmod mpm_worker //ΠΠΊΠ»ΡΡΠ°Π΅ΠΌ worker
Walau bagaimanapun, apabila menggunakan Worker anda mungkin menghadapi masalah kerana... Modul php7.3 bergantung pada modul Prefork.
Untuk menyelesaikan masalah ini, mari pasang modul php7.3-fpm, yang akan digunakan untuk menjalankan skrip 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 //ΠΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ Π΄Π»Ρ Π½Π΅Π³ΠΎ
Perlu diingat bahawa menggunakan php-fpm juga akan mengurangkan jumlah RAM yang digunakan oleh proses apache2 dan sedikit mempercepatkan pemprosesan skrip PHP.
3. Kesimpulannya
Oleh itu, dengan tindakan mudah sedemikian kami dapat mengoptimumkan prestasi dan mengurangkan beban pada mesin (dalam kes ini RPI3).
Sudah tentu, terdapat beratus-ratus pilihan pengoptimuman lain, seperti mendayakan pemampatan (yang benar-benar berguna, tetapi kebanyakannya sudah didayakan secara lalai), menukar tetapan MPM (fail konfigurasi), melumpuhkan HostnameLookups, dll., tetapi dalam artikel ini saya cuba untuk refleksi Ini adalah perkara yang paling membantu saya, dan saya harap akan membantu orang lain.
Sumber: www.habr.com