Optimalisasi kinerja Apache2

Banyak orang menggunakan Apache2 sebagai server web. Namun, hanya sedikit orang yang berpikir untuk mengoptimalkan kinerjanya, yang berbanding lurus dengan kecepatan memuat halaman situs, kecepatan pemrosesan skrip (khususnya php), serta peningkatan beban CPU dan peningkatan jumlah RAM yang digunakan.

Oleh karena itu, panduan berikut akan membantu pengguna pemula (dan tidak hanya).
Semua contoh di bawah ini digunakan pada Raspberry PI 3, Debian 9, Apache 2.4.38, PHP 7.3.

Π˜Ρ‚Π°ΠΊ, Π½Π°Ρ‡Π½Π΅ΠΌ.

1. Menonaktifkan modul yang tidak digunakan

Metode pertama adalah dengan menonaktifkan modul yang tidak Anda gunakan:

Daftar modul yang digunakan saat ini dapat dilihat dengan perintah:

apache2ctl -M

Untuk menonaktifkan modul, gunakan perintah:

a2dismod *Π½Π°Π·Π²Π°Π½ΠΈΠ΅ модуля*

Oleh karena itu, untuk mengaktifkan modul, gunakan perintah:

a2enmod *Π½Π°Π·Π²Π°Π½ΠΈΠ΅ модуля*

Harap dicatat bahwa saat menggunakan a2dismod, nama modul harus ditulis tanpa kata modul itu sendiri.

Misalnya, jika Anda berada di output dari perintah apache2ctl -M melihat proxy_module, lalu untuk menonaktifkannya Anda perlu menggunakan perintah - proksi a2dismod

Modul yang paling banyak memuat sistem (dari pengalaman pribadi) adalah:

  • PHP, Ruby, Perl dan modul lainnya untuk berbagai bahasa scripting
  • SSL
  • Menulis kembali
  • CGI

Jadi jika Anda tidak memerlukan modul ini, saya sarankan untuk menonaktifkan modul ini.

Juga, setelah menonaktifkan modul apa pun, saya sarankan menggunakan perintah - tes konfigurasi apache2ctl, yang akan memeriksa konfigurasi situs yang digunakan dan jika ada modul yang dinonaktifkan diperlukan untuk itu, ini akan menghasilkan kesalahan.

2. Mengubah MPM (Multi-Processing Module) dan menggunakan php-fpm

Secara default, setelah instalasi, Apache2 menggunakan MPM Prefork (1 thread per 1 koneksi), yang secara signifikan mengurangi kinerja, namun pada saat yang sama meningkatkan stabilitas dan keamanan.

Namun untuk mengoptimalkan kinerja, saya sarankan menggunakan MPM Worker, yang memungkinkan Anda menggunakan banyak thread per koneksi.

Untuk mengaktifkannya kami menggunakan perintah berikut:

a2dismod mpm_prefork  //ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ prefork
a2dismod php7.3  //ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ php, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ зависит ΠΎΡ‚ prefork
a2enmod mpm_worker  //Π’ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ worker

Namun, saat menggunakan Worker Anda mungkin mengalami masalah karena... Modul php7.3 bergantung pada modul Prefork.

Untuk mengatasi masalah ini, mari kita instal 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 dicatat bahwa penggunaan php-fpm juga akan mengurangi jumlah RAM yang digunakan oleh proses Apache2 dan sedikit mempercepat pemrosesan skrip PHP.

3. Kesimpulan

Jadi, dengan tindakan sederhana seperti itu kami dapat mengoptimalkan kinerja dan mengurangi beban pada alat berat (dalam hal ini RPI3).

Tentu saja, ada ratusan opsi pengoptimalan lainnya, seperti mengaktifkan kompresi (yang sangat berguna, tetapi sebagian besar sudah diaktifkan secara default), mengubah pengaturan MPM (file konfigurasi), menonaktifkan HostnameLookups, dll., tetapi di artikel ini saya mencoba untuk mencerminkan Ini adalah poin yang paling membantu saya, dan saya berharap dapat membantu orang lain.

Sumber: www.habr.com

Tambah komentar