Bagaimana Cara Mengoptimasi NGINX

Nginx adalah alternatif webserver yang cepat dan ringan. Namun, Nginx seperti semua jenis server atau perangkat lunak harus disesuaikan untuk membantu mencapai kinerja yang optimal.

Worker Processes dan Worker Connections

Dua variabel pertama yang perlu kita sesuaikan adalah worker_processes dan worker_connections. Sebelum kita beralih ke setiap pengaturan, kita perlu memahami apa yang dikontrol oleh masing-masing arahan ini. Arahan worker_processes adalah tulang punggung untuk Nginx. ini bertanggung jawab untuk memberi tahu server virtual anda berapa banyak worker yang akan muncul setelah terikat ke IP dan port yang tepat.

Untuk mengetahui berapa  nilai yang Anda perlukan untuk menetapkan worker_processes, cukup lihat jumlah cpu core yang Anda miliki. Kita dapat mengeceknya dengan melihat cpuinfo:

grep processor /proc/cpuinfo | wc -l

Katakanlah ini mengembalikan nilai 1. Maka itu adalah jumlah core anda

Perintah worker_connections memberi tahu pekerja kami memproses berapa banyak orang yang dapat dilayani secara bersamaan oleh Nginx. Nilai standarnya adalah 768; Namun, mengingat setiap browser biasanya membuka setidaknya 2 koneksi/server, jumlah ini bisa setengahnya. Inilah mengapa kita perlu menyesuaikan koneksi pekerja kita secara maksimal. Kami dapat memeriksa batasan inti kami dengan mengeluarkan perintah ulimit:

ulimit -n

Pada mesin yang lebih kecil (tetesan 512MB), angka ini mungkin akan terbaca 1024, yang merupakan angka awal yang bagus.

Mari perbarui konfigurasi kami:

sudo nano /etc/nginx/nginx.conf
worker_processes 1;
worker_connections 1024;

Ingat, jumlah klien yang bisa dilayani bisa dikalikan dengan jumlah core. Dalam hal ini, kita dapat server 1024 klien/detik. Namun, ini bahkan lebih dimitigasi oleh direktif keepalive_timeout.

Gzip Compression

Gzip dapat membantu mengurangi jumlah transfer jaringan yang ditangani Nginx. Namun, hati-hati menaikkan gzip_comp_level terlalu tinggi karena server akan mulai membuang siklus cpu.

gzip             on;
gzip_comp_level  2;
gzip_min_length  1000;
gzip_proxied     expired no-cache no-store private auth;
gzip_types       text/plain application/x-javascript text/xml text/css application/xml;

Static File Caching

Dimungkinkan untuk mengatur cache file statis.

location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}

Tambahkan dan hapus salah satu jenis file dalam baris di atas agar sesuai dengan jenis file di server Nginx Anda.

Disable Log

Nginx mencatat setiap permintaan yang diterima VPS ke file log. Jika Anda menggunakan analitik untuk memantau ini, Anda mungkin ingin dapat menonaktifkan fungsi ini. Cukup edit direktif access_log:

access_log off;

Simpan dan restart ulang NGINX:

sudo service nginx restart