Apa itu NGINX ?
Kali ini membahas salah satu web server yang open source
Web server menjadi bagian terpenting dalam teknologi web. Dengan web server, server dapat bekerja dengan semestinya, menerima request dan mengembalikan response. Ada banyak software web server seperti nginx, apache, iis, dan lain lain. Namun kali ini aku hanya bahas yang nginx.
Nginx dibuat oleh Igor Sysove pada tahun 2004. Awal muncul nya karena ada masalah C10k pada web server. C10k ialah terjadinya down pada sisi server ketika koneksi user dengan server melebihi 10.000 koneksi diwaktu bersamaan. That’s why Nginx hadir untuk menyelesaikan masalah ini.
Ada banyak website yang ber-trafict tinggi yang menggunakan Nginx sebagai web server mereka. Seperti Google, Netlify, Cloudflare, dan lain — lain. Nah terus gimana sih cara kerjanya kok banyak banget webpage terkenal yang use it..
Cara kerjanya
Web server menerima permintaan atau request dari user dan mengembalikan kepada user dalam bentuk response. Web server biasa membuat single thread dalam setiap request, namun NGINX tidak begitu. Nginx menggunakan arsitektur event driven dan asinkron. Jadi setiap thread dikelola dalam 1 worker process dan setiap worker proccess teridiri dari unit yang lebih kecil yaitu worker connection. Worker connection mengirimkan permintaan ke worker process, yang juga dikirimkannya ke master process. Master process kemudian menampilkan hasil dari permintaan atau request tersebut.

Terkadang satu worker connection bisa menghandle sampai 1024 request yang sama. Maka dari itu Nginx kerap digunakan untuk server server ecommerce, search engine, dan lain — lain.
Keunggulan
Ada beberapa keunggulan Nginx dibandingkan dengan web server lain:
- Nginx dapat menghandle 1000 request dalam waktu bersamaan untuk website yang cenderung statis.
- Security, karena Engineer Nginx selalu mengupdate security patchnya sehingga keaman lebih terjaga (menghindari Ddos Attacks)
Kelemahan
Selain itu Nginx juga memiliki beberapa kelemahan:
- Performa nginx tidak terlalu baik ketika menggunakan OS Windows
- Dukungan komunitas belum lengkap jadi beberapa issue tertentu belum memiliki dokumentasi yang memadai