Bundelan Kertas -Ada banyak penyebutan teknis dalam dunia website, dan salah satunya adalah NGINX.
Apa itu NGINX? Dibaca “engine-ex”, NGINX adalah software web server
yang open source. Ketika pertama kali dirilis, NGINX hanya berfungsi
sebagai HTTP web serving saja. Namun sekarang, software tersebut juga
berperan sebagai reverse proxy, HTTP load balancer, dan email proxy
untuk IMAP, POP3, dan SMTP.
NGINX secara resmi diperkenalkan pada bulan Oktober 2004. Creator atau pembuat software ini, Igor Sysoev, memulai proyeknya di tahun 2002 untuk menjawab permasalahan C10k problem. C10k sendiri digambarkan sebagai sebuah tantangan yang dihadapi server ketika harus mengelola sepuluh ribu koneksi di waktu bersamaan. Hingga saat ini, jumlah koneksi yang dikelola web server terus bertambah. Karena itulah, NGINX menawarkan arsitektur yang event-driven dan asinkron. Adanya arsitektur ini menjadikan NGINX sebagai salah satu server yang kecepatan dan skalabilitasnya dapat diandalkan.
Karena kecepatan dan kemampuannya dalam menangani jumlah koneksi yang banyak, layanan NGINX kerap digunakan oleh website dengan trafik yang tinggi. Beberapa contoh dari website tersebut adalah Google, Netflix, Adobe, Cloudflare, WordPress.com, dan masih banyak lagi.
Sebelum mengenal pengertian NGINX lebih jauh, ada baiknya bila Anda mengetahui cara kerja sebuah web server terlebih dulu. Ketika seseorang ‘mengirimkan’ permintaan untuk membuka webpage, maka browser akan menghubungi server website tersebut. Server lalu mencari file webpage yang diminta oleh user tersebut dan mengirimkannya ke browser. Alur ini menunjukkan cara kerja server terhadap permintaan atau request sederhana.
Contoh di atas juga bisa disebut sebagai single thread. Web server biasa membuat single thread untuk setiap permintaan, tapi tidak demikian dengan NGINX. Seperti yang telah disebutkan sebelumnya, NGINX menjalankan arsitektur yang event-driven dan asinkron. Hal ini menunjukkan bahwa thread yang sama atau serupa dikelola di bawah satu worker process, dan setiap worker process terdiri atas unit yang lebih kecil dan disebut worker connection. Keseluruhan unit ini bertugas untuk menangani request thread. Worker connection mengirimkan permintaan ke worker process, yang juga dikirimkannya ke master process. Master process kemudian menampilkan hasil dari permintaan atau request tersebut.
Sekilas cara kerja NGINX terlihat mudah, tapi Anda perlu tahu kalau satu worker connection saja bisa menangani hingga 1024 permintaan yang sama dan serupa. Karena itulah, NGINX dapat memproses ribuan permintaan tanpa kesulitan berarti. Kemampuannya ini pula yang mengantarkannya menjadi server yang kerap digunakan oleh website dengan trafik tinggi, seperti ecommerce, mesin pencari, dan cloud storage.
Berikut ini beberapa hal yang kami gunakan untuk membandingkan NGINX vs Apache:
NGINX secara resmi diperkenalkan pada bulan Oktober 2004. Creator atau pembuat software ini, Igor Sysoev, memulai proyeknya di tahun 2002 untuk menjawab permasalahan C10k problem. C10k sendiri digambarkan sebagai sebuah tantangan yang dihadapi server ketika harus mengelola sepuluh ribu koneksi di waktu bersamaan. Hingga saat ini, jumlah koneksi yang dikelola web server terus bertambah. Karena itulah, NGINX menawarkan arsitektur yang event-driven dan asinkron. Adanya arsitektur ini menjadikan NGINX sebagai salah satu server yang kecepatan dan skalabilitasnya dapat diandalkan.
Karena kecepatan dan kemampuannya dalam menangani jumlah koneksi yang banyak, layanan NGINX kerap digunakan oleh website dengan trafik yang tinggi. Beberapa contoh dari website tersebut adalah Google, Netflix, Adobe, Cloudflare, WordPress.com, dan masih banyak lagi.
Bagaimana Cara Kerja NGINX?
NGINX datasheet update diagram sumber : https://www.nginx.com/ |
Sebelum mengenal pengertian NGINX lebih jauh, ada baiknya bila Anda mengetahui cara kerja sebuah web server terlebih dulu. Ketika seseorang ‘mengirimkan’ permintaan untuk membuka webpage, maka browser akan menghubungi server website tersebut. Server lalu mencari file webpage yang diminta oleh user tersebut dan mengirimkannya ke browser. Alur ini menunjukkan cara kerja server terhadap permintaan atau request sederhana.
Contoh di atas juga bisa disebut sebagai single thread. Web server biasa membuat single thread untuk setiap permintaan, tapi tidak demikian dengan NGINX. Seperti yang telah disebutkan sebelumnya, NGINX menjalankan arsitektur yang event-driven dan asinkron. Hal ini menunjukkan bahwa thread yang sama atau serupa dikelola di bawah satu worker process, dan setiap worker process terdiri atas unit yang lebih kecil dan disebut worker connection. Keseluruhan unit ini bertugas untuk menangani request thread. Worker connection mengirimkan permintaan ke worker process, yang juga dikirimkannya ke master process. Master process kemudian menampilkan hasil dari permintaan atau request tersebut.
Sekilas cara kerja NGINX terlihat mudah, tapi Anda perlu tahu kalau satu worker connection saja bisa menangani hingga 1024 permintaan yang sama dan serupa. Karena itulah, NGINX dapat memproses ribuan permintaan tanpa kesulitan berarti. Kemampuannya ini pula yang mengantarkannya menjadi server yang kerap digunakan oleh website dengan trafik tinggi, seperti ecommerce, mesin pencari, dan cloud storage.
NGINX vs Apache
Di antara web server yang kian menjamur di internet, Apache adalah salah satu rival atau saingan terberat NGINX. Server tersebut sudah beredar semenjak tahun 90-an dan hingga kini telah memiliki komunitas user yang besar.Berikut ini beberapa hal yang kami gunakan untuk membandingkan NGINX vs Apache:
- Dukungan OS (Sistem Operasi)
Kompatibilitas
adalah salah satu poin yang harus Anda pertimbangkan ketika memilih
software. Baik NGINX maupun Apache, kedua server tersebut dapat
dijalankan di berbagai sistem operasi yang mendukung sistem Unix.
Sayangnya, performa NGINX di Windows tidak sebagus jika diaktifkan di
platform lain.
- User support
User,
baik pemula maupun yang sudah berpengalaman, selalu membutuhkan panduan
dari komunitas online yang besar dan solid bilamana mereka menemui
hambatan atau masalah. Meskipun NGINX dan Apache sama-sama dilengkapi
dengan mailing support
dan forum Stack Overflow, Apache tidak punya fitur bantuan pelanggan
yang seharusnya ditawarkan oleh perusahaannya, Apache Foundation.
- Performa
NGINX
bisa menjalankan 1000 koneksi konten statis di waktu bersamaan dengan
kecepatan dua kali lebih tinggi dibandingkan Apache. Tak hanya itu,
NGINX juga tidak menggunakan kapasitas memori yang berlebih. Jika
membandingkan dua platform ini dari segi performa ketika menjalankan
konten yang dinamis, baik NGINX maupun Apache memiliki kecepatan yang
sama. Hanya saja, untuk website yang cenderung statis, NGINX adalah
pilihan terbaik.