Panduan Profiling Kinerja NGINX dengan ngx_http_stub_status_module
Halo, para penggila NGINX! Kalian pasti udah nggak asing lagi sama NGINX, kan? Web server keren yang bisa nge-handle traffic tinggi dengan stabil. Tapi, pernah nggak sih kalian kepikiran gimana caranya ngukur kinerja NGINX biar bisa optimasi lebih lanjut? Nah, di artikel ini, kita bakal bahas tentang ngx_http_stub_status_module, modul bawaan NGINX yang bisa bantu kalian profiling kinerja NGINX dengan mudah. Yuk, simak!
Apa Itu ngx_http_stub_status_module?
ngx_http_stub_status_module adalah modul bawaan NGINX yang menyediakan informasi dasar tentang kinerja server. Modul ini nggak diaktifkan secara default, jadi kalian perlu mengaktifkannya dulu. Dengan modul ini, kalian bisa melihat statistik seperti jumlah koneksi aktif, total request yang diterima, dan masih banyak lagi.
Mengaktifkan ngx_http_stub_status_module
Pertama-tama, pastikan modul ini udah terinstall di NGINX kalian. Biasanya, modul ini udah termasuk dalam instalasi standar NGINX. Tapi, kalau kalian nggak yakin, coba cek dengan perintah:
nginx -V 2>&1 | grep -o with-http_stub_status_module
Kalau keluar output with-http_stub_status_module
, berarti modulnya udah terinstall. Kalau nggak, kalian perlu recompile NGINX dengan menambahkan opsi --with-http_stub_status_module
.
Setelah itu, kalian perlu mengkonfigurasi NGINX untuk mengaktifkan modul ini. Buka file konfigurasi NGINX (biasanya di /etc/nginx/nginx.conf
atau /etc/nginx/sites-available/default
), dan tambahkan blok location
berikut di dalam blok server
:
server {
listen 80;
server_name localhost;
location /nginx_status {
stub_status on;
allow 127.0.0.1; # Hanya izinkan akses dari localhost
deny all; # Tolak akses dari IP lain
}
}
Di sini, kita membuat endpoint /nginx_status
yang hanya bisa diakses dari localhost (127.0.0.1) untuk alasan keamanan. Kalau kalian mau akses dari IP lain, ganti allow
dengan IP yang diinginkan.
Setelah itu, restart NGINX:
sudo systemctl restart nginx
Mengakses Statistik NGINX
Sekarang, kalian bisa akses statistik NGINX dengan membuka http://localhost/nginx_status
di browser atau menggunakan curl
:
curl http://localhost/nginx_status
Outputnya kira-kira seperti ini:
Active connections: 1
server accepts handled requests
10 10 20
Reading: 0 Writing: 1 Waiting: 0
Mari kita bahas arti dari setiap baris:
- Active connections: Jumlah koneksi aktif saat ini, termasuk koneksi yang sedang menunggu (Waiting).
- server accepts handled requests:
accepts
: Jumlah koneksi yang diterima oleh NGINX.handled
: Jumlah koneksi yang berhasil di-handle.requests
: Jumlah total request yang diterima.
- Reading: Jumlah koneksi yang sedang membaca request header dari client.
- Writing: Jumlah koneksi yang sedang menulis response ke client.
- Waiting: Jumlah koneksi idle yang menunggu request baru.
Memahami Statistik NGINX
Dari statistik di atas, kita bisa dapatkan beberapa insight:
- Jika
handled
sama denganaccepts
, berarti semua koneksi berhasil di-handle tanpa masalah. - Jika
requests
jauh lebih besar darihandled
, berarti setiap koneksi bisa menangani banyak request (keep-alive bekerja dengan baik). Reading
danWriting
menunjukkan beban kerja NGINX saat ini.Waiting
menunjukkan koneksi yang idle. Jika angka ini tinggi, berarti NGINX bisa nge-handle lebih banyak koneksi tanpa masalah.
Integrasi dengan Monitoring Tools
Statistik dari ngx_http_stub_status_module bisa diintegrasikan dengan berbagai monitoring tools seperti Prometheus, Grafana, atau Zabbix. Caranya, kalian bisa menggunakan exporter seperti nginx-prometheus-exporter untuk mengumpulkan data dan menampilkannya di dashboard monitoring.
Tips Keamanan
Karena statistik NGINX bisa memberikan informasi sensitif tentang server, pastikan endpoint /nginx_status
hanya bisa diakses dari IP yang dipercaya. Jangan biarkan endpoint ini terbuka untuk publik!
Kesimpulan
Dengan ngx_http_stub_status_module, kalian bisa dengan mudah memonitor kinerja NGINX dan melakukan optimasi jika diperlukan. Modul ini sederhana tapi powerful, dan bisa jadi senjata rahasia kalian dalam mengelola server NGINX. Jadi, jangan ragu untuk mengaktifkannya dan mulai profiling kinerja NGINX kalian!