Peran sebuah web server sangatlah penting supaya website dapat berjalan dengan baik dan cepat. Oleh karena itu pemilihan web server harus sesuai dengan kebutuhan dan performance nya. Nginx adalah salah satu web server yang memiliki performance tinggi dan ringan yang banyak di gunakan oleh website besar di dunia seperti Google, Microsoft, Facebook, Twitter, Apple, Github, Adobe dan masih banyak lain nya.
Saya akan membuat beberapa artikel untuk membahas mengenai beberapa hal yang berhubungan dengan Nginx seperti apa itu Nginx, sejarah, kelebihan serta perbandingan Nginx dengan web server lain nya seperti Apache.
Apa itu Nginx?
Nginx adalah sebuah web server yang memiliki performance yang handal dan cepat. Selain mempunyai performance yang tinggi, Nginx juga memiliki fitur yang canggih dan mudah dikonfigurasi sehingga Nginx mampu membuat website lebih powerful dan canggih.
Pada awal sejarah munculnya, Nginx hanya digunakan untuk server HTTP saja. Seiring perkembangan teknologinya, saat ini Nginx juga digunakan sebagai HTTP cache, load balancer maupun sebagai server proxy.
Nginx dapat berjalan di berbagai macam sistem operasi seperti Linux, Max OS X, Windows, BSD, HP-UX maupun Solaris.
Banyak perusahaan besar di dunia menggunakan Nginx sebagai web server mereka seperti Google, Adobe, Facebook, Twitter, Apple, Salesforce, Xerox, VMWare, GitLab, Atlassian, Intuit, T-Mobile, IBM, DuckDuckGo, Linkedln, Cisco dan masih banyak lainya.
Nginx pada awalnya dikembangkan oleh Igor Sysoev dari Rusia dan dirilis pada Oktober 2014. Pada saat itu terdapat masalah yang dikenal dengan nama C10k atau masalah kinerja sistem pada saat menangani 10 ribu koneksi secara bersamaan. Igor mencoba untuk menyelesaikan permasalahan tersebut.
Nginx buatan Igor menawarkan konkurensi tinggi yang dapat menangani ribuan koneksi secara bersamaan dengan penggunaan memori yang rendah. Nginx menggunakan proses asynhronous atau mengeksekusi kode sebelum perintah sebelumnya selesai dijalankan daripada membuat proses baru untuk setiap eksekusi baris kode yang ada.
Nginx tidak hanya menggunakan proses asynchronous tetap juga melakukan pendekatan event-driven. Pendekatan event-driven menangani request di dalam satu thread saja. Degan berbagai macam teknologi ini Nginx merevolusi bagaimana sebuah web server bekerja dan berhasil menjadi web server paling populer sampai saat ini,
Pada tahun 2004 Igor Sysoev membuka proyek Nginx secara umum. Setelah melihat jumlah pengguna Nginx yang terus meningkat, Igor mencoba mengembangkan Nginx dan memasuki pasar dengan Nginx Plus. Nginx Plus mampu menangani ratusan bahkan ribuan koneksi secara bersamaan dan sudah digunakan lebih dari 500 website bisnis di internet.
Bagaimana Cara Nginx Bekerja?
Nginx menawarkan penggunaan memori yang kecil dan konkurensi yang tinggi. Nginx tidak membuat proses baru ketika ada permintaan (web request), tapi akan di tanganin di dalam satu thread.
Didalam Nginx satu proses utama dapat mengontrol berbagai proses lainnya. Jadi proses utama tetap menjalankan tugas utamanya sambil mengontrol proses lain yang ada di bawah nya.
Nginx juga memiliki beberapa fitur yang dapat digunakan untuk menambah performance web server yang andal seperti:
- Reserve Proxy
- Dukungan IPv6
- Load Balancing
- Dukungan FastCGI
- Web Socket
- Menangani file static, file index dan auto-indexing
- TLS / Sertifikat SSL