NGINX (dibaca “engine-ex”) adalah perangkat lunak server web sumber terbuka yang juga berfungsi sebagai reverse proxy, load balancer, dan HTTP cache. Awalnya, NGINX dirancang untuk mengatasi “C10k problem,” yaitu masalah server dalam menangani ribuan koneksi secara bersamaan, dan dikenal karena kecepatan serta kemampuannya dalam menangani beban tinggi dan banyak koneksi secara efisien.
NGINX menggunakan arsitektur berbasis event-driven dan asinkron, yang memungkinkannya menangani banyak koneksi secara bersamaan dengan sumber daya minimal. Ini menjadikannya pilihan populer untuk website dengan traffic tinggi, seperti Google, Netflix, dan WordPress.com. nginx juga memiliki lisensi open-source yang memiliki multi fungsi sebagai proxy IMAP/POP3. Web server Nginx terkenal karena stabil, memiliki tingkat performansi tinggi dan minim mengonsumsi sumber daya.
Beberapa fungsi utama NGINX:
| Fungsi | Penjelasan |
|---|---|
| 🌐 Web Server | Melayani konten statis seperti HTML, CSS, JS, gambar |
| 🔀 Reverse Proxy | Meneruskan request dari klien ke backend (mis. Laravel, Node.js, PHP-FPM) |
| 🚀 Load Balancer | Menyeimbangkan beban traffic ke banyak server backend |
| 🔐 SSL/TLS Termination | Menangani HTTPS dan enkripsi koneksi |
| 🧱 Web Application Firewall (WAF) | Bisa diintegrasikan dengan modul keamanan (seperti ModSecurity, open-appsec) |
| 🗂 Content Cache | Men-cache respon untuk mempercepat layanan |
Kelebihan NGINX:
- Ringan dan hemat resource
- Mampu menangani ribuan koneksi simultan dengan efisien
- Cocok untuk static content, API, dan microservices
- Dukungan untuk HTTP/2, HTTPS, gRPC, streaming, dll
- Banyak digunakan sebagai reverse proxy & gateway untuk Laravel, WordPress, React, dst.
Contoh Struktur Kerja NGINX:
Client Request --> NGINX --> Backend (Laravel / Node / PHP)
↳ Static Content (HTML/JS)
↳ Logging / Monitoring
Struktur Folder Default NGINX di Ubuntu:
| Folder / File | Keterangan |
|---|---|
/etc/nginx/nginx.conf | Konfigurasi utama |
/etc/nginx/sites-available/ | Konfigurasi virtual host |
/etc/nginx/sites-enabled/ | Link ke situs yang aktif |
/var/www/html/ | Lokasi default dokumen HTML |
/var/log/nginx/ | Log akses & error |
Perintah Dasar NGINX:
| Perintah | Fungsi |
|---|---|
sudo nginx -t | Cek konfigurasi |
sudo systemctl reload nginx | Reload konfigurasi tanpa restart |
sudo systemctl restart nginx | Restart NGINX |
sudo nginx -v | Lihat versi |
sudo tail -f /var/log/nginx/access.log | Lihat log akses |
sudo tail -f /var/log/nginx/error.log | Lihat log error |
