Apa itu NGINX?
Nginx atau bisa kita sebut “engine-x” adalah satu diantara dari sekian banyak teknologi web server dipakai oleh umat manusia saat ini. NGINX merupakan webserver open source yang cukup terkenal dan sekarang bukan hanya digunakan sebagai web server namun juga sering diaplikasi sebagai reverse-proxy server, web accelerator, HTTP cache dan juga load-balancer.
NGINX awalnya dikembangkan oleh seorang insinyur kebangsaan Rusia, Igor Sysoev. Igor memulai proyek pengembangan NGINX di tahun 2002 dan dirilis ke publik umum di tahun 2004. Igor menawarkan NGINX sebagai satu solusi dalam mengatasi permasalahan C10K, yaitu suatu masalah performa web server dalam melayani 10.000 koneksi bersamaan.
Inilah salah satu sebab mengapa NGINX dapat mengoptimasi dengan baik konten statis dan penggunaan konkurensi tinggi. Bahkan, NGINX server sangat mengungguli web server lainnya dalam masalah ini.
Bagaimana Cara Kerja NGINX?
Nginx didesain agar efisien dalam memakai memori kecil walaupun dengan penggunaan konkurensi yang sangat tinggi. Mengapa bisa demikian, Nginx menggunakan proses asinkron (mengeksekusi kode sebelum perintah sebelumnya selesai dijalankan) serta pendekatan event-driven yang melayani seluruh permintaan koneksi hanya dalam satu thread/proses saja daripada membuat proses baru untuk setiap permintaan koneksi baru.
NGINX hanya memiliki satu master process yang dapat mengontrol beberapa ‘workers’ process. Fungsi utama dari Master process adalah membaca dan mengevaluasi konfigurasi, serta mengatur workers. Sedangkan ‘workers’ yang melakukan semua proses yang dibutuhkan dari semua permintaan pengguna web server. Karena sifatnya yang asinkron, maka setiap permintaan dapat di eksekusi konkuren oleh worker tanpa memblokir permintaan lainnya.
Jumlah workers ditentukan dalam file konfigurasi (‘nginx.conf’) yang dapat kita tetapkan jumlahnya atau secara otomatis berdasarkan dari banyak-nya CPU cores server/vps.
Apa saja fitur yang dimiliki oleh NGINX?
Berikut ada beberapa fitur umum dari NGINX server yang dapat dimanfaatkan untuk mendukung performa web server anda:
- Reverse proxy dengan proses cache
- Dukungan terhadap IPv6
- Dukungan terhadap FastCGI dengan proses cache
- Dukungan protokol web HTTP, HTTPS, dan HTTP/2
- Dukungan terhadap TLS/SSL dengan SNI (Server Name Indication)
- Optimasi penanganan file static, file indeks dan juga auto-indexing.
NGINX vs Apache?
Diantara sekian banyak web server yang digunakan oleh pengembang website, maka web server Apache lah yang paling banyak digunakan di dunia. Apache sudah beredar sejak tahun 1996, dan hampir 57% digunakan sebagai web server di tahun 1999, hingga naik 71% semua web server menggunakan Apache di tahun 2005. Namun, semenjak tahun 2004, Apache memiliki rival terberat-nya yaitu NGINX. Kita bisa lihat grafik dibawah ini tentang pertumbuhan NGINX yang terus naik dan berbanding terbalik dengan pertumbuhan Apache.
Dan, jika kita tilik dari pengguna teknologi web server berdasarkan urutan website yang memakainya. Maka kita dapatkan NGINX lebih banyak dipakai oleh website-website papan atas. Berikut grafik dari hasil survei di 3tech:
Lalu bagaimana dengan pilihan Anda, Nginx atau Apache? Anda bisa memberitahu kami dengan memberikan poll di bawah ini.
Kami akan mencoba mengulas lebih jauh tentang perbandingan NGINX dan Apache di artikel selanjutnya.