NGINX adalah server web berperforma tinggi yang digunakan terutama untuk mengelola file statis dan sebagai proxy terbalik, tetapi berkat keserbagunaannya, dapat dieksploitasi dalam situasi apa pun.
Dalam panduan ini Anda akan mempelajari cara memfilter dan mengoptimalkan permintaan file statis dengan NGINX, untuk meningkatkan kinerja situs web Anda dan mengurangi beban server, menggunakan beberapa trik, seperti mengaktifkan kompresi Gzip, mengubah jumlah proses / koneksi atau ukuran buffer.
Pertama, sambungkan ke server Anda melalui koneksi SSH. Jika Anda belum melakukannya, ikuti panduan kami disarankan untuk terhubung secara aman dengan SSH. Untuk server lokal, lanjutkan ke langkah berikutnya dan buka terminal server Anda.
Modifikasi Parameter Konfigurasi
Buka file konfigurasi NGINX menggunakan editor, seperti nano atau vi. Untuk contoh ini, nano digunakan.
$ sudo nano /etc/nginx/nginx.conf
Mengaktifkan kompresi Gzip
Dengan mengaktifkan kompresi Gzip, jumlah data yang akan dikirim dapat dikurangi. Berhati-hatilah untuk tidak meningkatkan tingkat kompresi Gzip terlalu banyak, karena dapat mempengaruhi kinerja 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;
Menyetel jumlah proses dan koneksi
Parameter 'worker_processes' mengacu pada jumlah proses yang dibuat oleh NGINX setelah memulainya. Jumlah proses biasanya harus sama dengan jumlah core di server. Misalnya, jika server memiliki prosesor dengan 4 core maka parameter dengan nilai 4 harus diatur, sebagai berikut:
worker_processes 4;
Parameter worker_connections mengacu pada jumlah klien yang akan dilayani oleh satu proses. Untuk menetapkan nilai optimal untuk konfigurasi, yang harus Anda lakukan adalah memeriksa batas inti Anda dengan perintah:
$ ulimit -n
Hasilnya adalah jumlah maksimum koneksi per proses. Kemudian, untuk mengaturnya:
worker_processes 1024;
Mengubah ukuran Buffer
Jika ukuran buffer terlalu rendah, NGINX akan dipaksa untuk membuat file sementara, menyebabkan banyak operasi disk. Untuk menghindarinya, atur ukuran buffer dengan benar.
client_max_body_size:menunjukkan ukuran maksimum permintaan klien
client_body_buffer_size:mengacu pada ukuran buffer untuk permintaan POST
client_header_buffer_size:mengacu pada ukuran buffer relatif terhadap header permintaan klien
Dengan memodifikasi parameter ini dengan nilai-nilai berikut, hasil yang baik akan diperoleh:
client_max_body_size 8m;
client_body_buffer_size 10K;
client_header_buffer_size 1k;
Mengubah durasi cache
Untuk mengatur durasi cache file statis, yang harus Anda lakukan adalah menentukan ekstensi file dan durasinya dengan cara ini:
location ~*.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}
di mana dengan 365d ditentukan bahwa cache untuk ekstensinya akan bertahan selama 365 hari.
Mengurangi Timeout
Parameter client_body_timeout dan client_header_timeout masing-masing menunjukkan waktu tunggu untuk badan atau header permintaan. Jika server tidak menerima isi atau header dalam waktu ini, \ koneksi diakhiri dengan kesalahan batas waktu.
Parameter send_timeout menunjukkan waktu maksimum antara dua operasi baca. jika waktu ini terlampaui, NGINX akan mengakhiri koneksi dengan klien.
Sebaliknya, parameter keepalive_timeout mengacu pada durasi maksimum koneksi Keep-Alive sebelum mengakhirinya.
Dengan menetapkan nilai-nilai ini sebagai berikut, akan diperoleh hasil yang baik:
client_body_timeout 12;
client_header_timeout 12;
send_timeout 10;
keepalive_timeout 15;
Menonaktifkan Log
NGINX memantau setiap permintaan yang dibuat dalam file log. Untuk menonaktifkan fungsi ini, Anda hanya perlu mengubah parameter access_log sebagai berikut:
access_log off;
Menerapkan perubahan
Mulai ulang layanan NGINX untuk menerapkan perubahan:
$ sudo service nginx restart