NGINX adalah server web sumber terbuka, gratis, dan populer. Konfigurasi NGINX default cukup baik untuk membuat server web berfungsi.
Namun, jika Anda ingin menggunakan NGINX secara maksimal, Anda perlu mengutak-atik file konfigurasinya dan mengatur parameter yang akan mengoptimalkan kinerja server. Anda akan menemukan file konfigurasi di /etc/nginx direktori pada mesin Linux.
Apa itu NGINX?
NGINX adalah web server modern yang dapat Anda gunakan sebagai media streamer, mail server, proksi terbalik, penyeimbang beban, server cache, dan lainnya.
Digunakan oleh banyak profil besar seperti VMware, IBM, Cisco, Apple, Microsoft LinkedIn, Netflix, Facebook, Twitter, dll., NGINX dikenal luas karena kinerja terbaiknya. Keuntungan lain menggunakan NGINX adalah mudah dikonfigurasi dan dipelajari.
Prasyarat untuk Menyesuaikan Kinerja NGINX di Linux
Anda harus memenuhi persyaratan berikut sebelum memulai dengan konfigurasi NGINX:
- Server NGINX diterapkan dan dikonfigurasi di Linux
- Pemahaman dasar tentang NGINX dan file konfigurasinya
Jika Anda memenuhi persyaratan ini, Anda siap menyetel NGINX untuk performa optimal. Mari kita lihat bagaimana melakukannya.
1. Konfigurasikan Proses Pekerja di NGINX
Arsitektur NGINX terdiri dari satu proses master dan beberapa proses pekerja. Tugas proses master adalah menilai konfigurasi dan mengelola pekerja. Di sisi lain, peran proses pekerja adalah menangani permintaan yang masuk dan membuat koneksi antara klien dan server.
Nilai proses diatur ke mobil secara default. Ini menetapkan jumlah proses pekerja sama dengan jumlah inti CPU yang tersedia. Untuk mengetahui berapa banyak inti CPU yang ada di sistem Anda, jalankan perintah berikut:
prosesor grep /proc/cpuinfo | wc -l
Jika Anda ingin menambah jumlah proses pekerja, Anda perlu mengonfigurasinya di file konfigurasi NGINX.
Buka file dengan nano:
nano etc/nginx/nginx.conf
Untuk mengonfigurasi lebih banyak proses pekerja, ubah nilai default ke jumlah maksimum inti CPU yang tersedia di sistem Anda.
2. Konfigurasikan Koneksi Pekerja
Parameter lain yang dapat Anda modifikasi untuk meningkatkan performa NGINX adalah koneksi pekerja. Ini adalah jumlah maksimum koneksi TCP yang dapat ditangani oleh setiap proses pekerja secara bersamaan.
Sebagian besar sistem memiliki nilai default 512 sambungan, tetapi banyak sistem modern juga mendukung jumlah yang lebih besar. Anda dapat memeriksa berapa banyak koneksi yang didukung sistem Anda dengan:
ulimit -N
Outputnya adalah jumlah maksimum koneksi yang didukung. Anda kemudian dapat memodifikasi pekerja_koneksi variabel dalam file konfigurasi NGINX untuk meningkatkan kinerja.
3. Izinkan Kompresi GZIP di NGINX
NGINX menggunakan GZIP untuk kompresi dan dekompresi file. Jika diaktifkan di file konfigurasi NGINX, Anda dapat menghemat bandwidth dan meningkatkan waktu pemuatan situs web saat koneksi lambat.
Untuk mengizinkan kompresi GZIP, tambahkan baris berikut di file konfigurasi NGINX:
pelayan {
gzip aktif;
gzip_variasi aktif;
gzip_min_length 10240;
gzip_proxied tidak kedaluwarsa-cacheTIDAK-tokopribadi autentikasi;
gzip_types teks/teks biasa/teks css/teks xml/aplikasi javascript/aplikasi x-javascript/xml;
gzip_disable "MSIE [1-6]\.";
}
4. Batasi Nilai Timeout di NGINX
Nilai batas waktu yang dikurangi juga memainkan peran utama dalam meningkatkan kinerja NGINX. Itu berusaha agar hidup koneksi mengurangi prosesor dan overhead jaringan saat membuka dan menutup koneksi.
Anda dapat memodifikasi parameter berikut di file konfigurasi untuk membatasi waktu tunggu:
http
{
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
}
5. Sesuaikan Ukuran Buffer
Anda juga dapat menyesuaikan buffer NGINX untuk mengoptimalkan kinerja server. Jika ukuran buffer terlalu rendah, maka NGINX akan menulis ke file sementara yang menyebabkan operasi I/O yang besar terus berjalan.
Anda perlu mengatur parameter buffer berikut agar NGINX berfungsi dengan baik:
http
{
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffer 4 4k;
}
6. Nonaktifkan Access Logs atau Aktifkan Access Logs Buffering
Log menghabiskan banyak ruang disk dan siklus CPU/IO yang dapat memengaruhi kinerja server jika mencatat setiap permintaan.
Anda dapat menonaktifkan log akses yang akan menghemat ruang disk dan pemrosesan CPU. Untuk menonaktifkan log akses, tambahkan baris berikut ke file konfigurasi NGINX:
access_log mati;
Log penting karena membantu memecahkan masalah. Menonaktifkan log sepenuhnya bukanlah praktik yang baik. Dalam hal ini, Anda dapat mengaktifkan buffering log akses. Ini akan memungkinkan NGINX untuk menyangga serangkaian log dan menuliskannya ke file log sekaligus alih-alih menerapkan operasi log yang berbeda pada setiap permintaan.
Tambahkan baris berikut di file konfigurasi NGINX untuk memungkinkan buffering log akses:
access_log/var/log/nginx/access.logutamapenyangga = 16k
7. Sesuaikan Periode Caching Konten Statis di NGINX
Konten di situs web yang tetap sama di seluruh halaman dikenal sebagai konten statis. Caching konten ini memungkinkan untuk ditempatkan di lokasi yang mudah diakses. Mekanisme ini mengurangi penggunaan bandwidth, memungkinkan akses cepat, dan selanjutnya meningkatkan kinerja situs web.
Ketika klien meminta konten statis, server akan menyajikan versi konten yang di-cache. Tambahkan baris berikut di file host virtual yang ditempatkan di /etc/nginx/sites-available direktori:
lokasi ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
berakhir 90d;
}
Konfigurasi ini akan meng-cache file selama 90 hari sejak waktu akses browser terakhir.
8. Aktifkan Open File Cache di NGINX
Anda juga dapat menggunakan parameter cache file terbuka di file konfigurasi NGINX untuk meningkatkan kinerjanya. Arahan ini memungkinkan deskriptor file dan file yang sering dikunjungi untuk di-cache ke server.
Tambahkan baris berikut di http bagian dalam file konfigurasi untuk mengaktifkan cache file terbuka:
http {
open_file_cache max=1024 tidak aktif=10 detik;
open_file_cache_valid 60-an;
open_file_cache_min_uses 2;
open_file_cache_errors aktif;
}
Bawa yang Terbaik dari NGINX dengan Memodifikasi File Konfigurasinya
Praktik yang baik untuk diikuti saat mengubah konfigurasi adalah menangani satu pengaturan pada satu waktu dan mengujinya. Jika berhasil, pindah ke pengaturan berikutnya. Jika tidak, Anda selalu dapat mengubah konfigurasi kembali ke nilai default.
Dengan memodifikasi parameter yang dikonfigurasi dalam file konfigurasi NGINX seperti nginx.conf dan file host virtual, Anda dapat meretas NGINX untuk memberikan kinerja terbaik.