Berikut adalah tutorial lengkap untuk mengkonfigurasi performa Nginx di web server Anda:
1. Memperbarui Nginx ke Versi Terbaru
Pastikan Nginx diinstal dengan versi terbaru. Versi terbaru biasanya mencakup perbaikan bug dan peningkatan kinerja. Anda dapat memperbarui Nginx dengan menjalankan perintah berikut di terminal:
sudo apt-get update
sudo apt-get upgrade
2. Optimalisasi Konfigurasi Nginx
Optimalisasi konfigurasi Nginx Anda dengan menghapus aturan yang tidak diperlukan, menyesuaikan nilai-nilai default, dan menyesuaikan kebutuhan server Anda. Beberapa penyesuaian yang dapat Anda lakukan adalah:
- Mengubah jumlah worker_processes: Jumlah worker_processes harus disetel sesuai dengan jumlah CPU dan memori pada server Anda.
- Mengaktifkan TCP keepalive: Mengaktifkan opsi keepalive dapat meningkatkan performa server Anda dengan mengurangi overhead koneksi yang baru.
- Menyesuaikan nilai timeout: Menyesuaikan nilai timeout dapat mempercepat waktu respons server Anda. Misalnya, Anda dapat mengurangi nilai timeout menjadi 10 detik dari nilai default 60 detik.
- Tambahkan blok `http` berikut pada file konfigurasi Nginx Anda:
http {
# ...
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=cache:10m inactive=60m;
proxy_cache_key "$scheme$request_method$host$request_uri";
proxy_cache_valid 200 60m;
proxy_cache_valid 404 1m;
# ...
}
- Tambahkan blok `server` berikut pada file konfigurasi Nginx Anda untuk meng-cache halaman web:
server {
# ...
location / {
proxy_cache cache;
proxy_cache_valid 200 60m;
proxy_cache_valid 404 1m;
proxy_cache_bypass $http_pragma;
proxy_cache_revalidate on;
add_header X-Cache-Status $upstream_cache_status;
proxy_pass http://localhost:8080;
}
# ...
}
- Restart Nginx untuk menerapkan perubahan:
sudo service nginx restart
- Tambahkan beberapa opsi gzip untuk mengatur level kompresi dan ukuran minimum file yang akan dikompresi:
http {
# ...
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_min_length 256;
gzip_buffers 16 8k;
gzip_http_version 1.1;
# ...
}
- Restart Nginx untuk menerapkan perubahan:
sudo service nginx restart
- Tambahkan blok `http` berikut pada file konfigurasi Nginx Anda:
http {
# ...
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=cache:10m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_valid 200 60m;
fastcgi_cache_valid 404 1m;
fastcgi_cache_bypass $http_pragma;
fastcgi_cache_revalidate on;
# ...
}
- Tambahkan blok `server` berikut pada file konfigurasi Nginx Anda untuk meng-cache halaman web:
server {
# ...
location / {
fastcgi_cache cache;
fastcgi_cache_valid 200 60m;
fastcgi_cache_valid 404 1m;
fastcgi_cache_bypass $http_pragma;
fastcgi_cache_revalidate on;
add_header X-Cache-Status $upstream_cache_status;
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
# ...
}
- Restart Nginx dan PHP-FPM untuk menerapkan perubahan:
sudo service nginx restart
sudo service php7.4-fpm restart