1. Pengenalan Nginx
Nginx (diucapkan "engine-x") adalah web server open-source berkinerja tinggi yang juga berfungsi sebagai reverse proxy, load balancer, dan HTTP cache. Nginx dirancang untuk menangani koneksi simultan yang sangat tinggi dengan penggunaan resource yang minimal.
Nginx diperkenalkan oleh Igor Sysoev pada tahun 2004 untuk mengatasi masalah C10K problem — yaitu kemampuan web server menangani 10.000 koneksi simultan. Berbeda dengan Apache yang menggunakan model thread-per-connection, Nginx menggunakan event-driven, asynchronous architecture yang sangat efisien.
Nginx vs Apache
| Aspek | Nginx | Apache |
|---|---|---|
| Architecture | Event-driven, asynchronous | Process/thread per connection |
| Koneksi Simultan | Sangat tinggi (ribuan) | Sedang (ratusan) |
| Memory Usage | Rendah (~2.5MB base) | Lebih tinggi |
| Static Content | Sangat cepat | Cukup cepat |
| Dynamic Content | Via FastCGI/proxy | mod_php (embedded) |
| Configuration | Centrally managed | .htaccess per direktori |
| Load Balancing | Built-in, native | Via mod_proxy |
| Market Share | ~34% dari busiest sites | ~31% |
Kegunaan Utama Nginx
2. Instalasi & Konfigurasi Dasar
Instalasi Nginx sangat straightforward. Berikut langkah-langkah untuk menginstal dan mengkonfigurasi Nginx pada server Linux.
Instalasi Nginx
flowchart TD
N0["/etc/nginx/"]
N1["nginx.conf"]
N2[conf.d/]
N3["default.conf"]
N4["sites-available/"]
N5[default]
N6["mysite.com"]
N7["sites-enabled/"]
N8["default → ../sites-available/default"]
N9["snippets/"]
N10["ssl-params.conf"]
N11["fastcgi-php.conf"]
N12["mime.types"]
N13["modules-enabled/"]
N0 --> N1
N0 --> N2
N2 --> N3
N0 --> N4
N4 --> N5
N4 --> N6
N0 --> N7
N7 --> N8
N0 --> N9
N9 --> N10
N9 --> N11
N0 --> N12
N0 --> N13