Artikel, Web Server, Web Speed

Nginx, bagaimana cara kerjanya?

Written by Admin Trinix · 1 min read >
Nginx dibuat pada tahun 2014 oleh seorang programmer bernama Igor Sysoev, berawal ketika menemukan permasalahan ketidakmampuan sebuah webserver dalam menerima 10.000 koneksi secara bersamaan, permasalahan ini dikenal dengan nama C10k, selain performance yang baik target yang ingin didapatkan adalah high concurrency dan low resource usage, dan hari ini kita bisa melihat bagaimana nginx digunakan mayoritas oleh 1000 top website di dunia.
Pada awal muncul nginx hanya digunakan untuk server dengan protokol http saja, seiring dengan perkembangan teknologi, nginx saat ini sudah bisa berfungsi sebagai cache, load balancer (HTTP, TCP, dan UDP) dan juga sebagai server proxy (IMAP, POP3 dan SMTP), selain itu nginx juga bisa berjalan hampir di semua sistem operasi seperti linux, MacOSX, BSD Varian dan lain-lain.
Nginx menawarkan menggunakan konkurensi tinggi yang dapat menangani ribuan koneksi secara bersamaan dengan penggunaan memory yang rendah, nginx menggunakan proses asynchronous (tidak langsung) yang dimaksud asynchronous adalah request yang masuk di kerjakan bersamaan tanpa menunggu proses sebelumnya selesai.
Selain itu, nginx juga menggunakan metode event-driven, menangani request di dalam satu thread saja, dengan inilah nginx bisa menjadi web paling populer saat ini.
Kemudian bagaimana nginx bekerja…
Seperti yang sudah disampaikan diatas, ketika nginx menerima request masuk, nginx tidak membuat proses baru, seperti yg dilakukan oleh webserver yang lain, namun request masuk tersebut di tangani langsung oleh thread.
Sebelum kita mengetahui lebih jauh mengenai cara kerja nginx, ada baiknya kita mengetahui terlebih dahulu bagaimana webserver itu bekerja.
Ketika pengunjung mengunjungi web yg di harapkan melalui browser, maka browser tersebut akan mengunjungi ke server website tersebut, kemudian server website akan mencari halaman yang diminta oleh browser tersebut, ketika sudah di temukan server web akan mengirimkan kembali request halaman yang diminta ke browser, proses ini menunjukkan cara kerja webserver atau permintaan request sederhana, contoh ini disebut juga dengan single thread.
Nginx memiliki master process yang berfungsi untuk membaca, mengevaluasi konfigurasi dan mengurus worker process. Worker process ini akan mengirimkan request yg masuk ke worker connection, worker connection inilah yang akan bertugas utk menangani permintaan yang masuk, dan mengirimkan kembali hasilnya ke worker process dan master process, dan master process akan mengirimkan permintaan ke browser. Setiap worker connection mampu menghandle hingga 1024 request yang sama dan serupa.
Inilah alasannya mengapa Nginx bisa lebih ringan dalam meng-handle ribuan request secara bersamaan dengan pemakaian resource yang kecil.

Leave a Reply

Your email address will not be published.