Pengertian NGINX

 Halo semuanya, selamat datang di blog saya. Pada kesempatan kali ini saya akan menjelaskan tentang NGINX, mulai dari pengertian hingga sejarah singkatnya. Yuk simak penjelasan berikut.

(sumber gambar: image by Tanner's Tech)

PENGERTIAN
NGINX yang dibaca (engine-ex) atau (enjin-eks) adalah web server yang bersifat open-source dan multifungsi. Selain digunakan sebagai web server, NGINX juga bisa digunakan sebagai load balancer, HTTP cache, dan server proxy untuk email (IMAP, POP3, dan SMTP). NGINX dapat digunakan di berbagai jenis sistem operasi (operating system/OS).

Nginx  terkenal karena performanya yang cepat, skalabilitasnya yang tinggi, dan penggunaan sumber daya yang efisien dibandingkan dengan server web lainnya dan NGINX diciptakan untuk menangani C10K PROBLEM. Secara singkatnya, c1ok problem adalah masalah 10.000 koneksi klien pada waktu bersamaan. Klik kalimat berwarna biru untuk membaca artikel C10K problem. Oh ya, NGINX ini menggunakan model atau arsitektur even-driven. 

SEJARAH
NGINX diciptakan oleh Igor Sysoev, seorang insinyur perangkat lunak asal Rusia, yang mulai mengembangkannya pada tahun 2002 dan merilis versi pertamanya pada 4 Oktober 2004. Awalnya, Nginx dirancang untuk mengatasi masalah yang dikenal sebagai C10k problem, masalah menangani 10.000 koneksi secara bersamaan yang merupakan tantangan bagi server web yang ada saat itu, seperti Apache.

Pada awalnya, Nginx mendapat popularitas di Rusia dan negara-negara Eropa Timur, namun dengan cepat menjadi populer secara global karena kemampuannya menangani lalu lintas besar dengan efisiensi tinggi. Salah satu faktor yang membuat Nginx terkenal adalah kemampuannya untuk menangani beban besar dengan penggunaan sumber daya yang rendah dibandingkan server web tradisional seperti Apache, yang sering menggunakan model proses per koneksi.

CARA KERJA
NGINX bekerja menggunakan arsitektur even-drive. Sistem ini menangani permintaan dengan mengelompokkan koneksi yang efisien, menggunakan sumber daya minimal. Ketika permintaan diterima, NGINX menggunakan worker processes yang mengatur permintaan asinkron tanpa menunggu proses lain selesai. Ini membuat kinerja dan kapasitas handling meningkat.

Thread yang sama atau serupa dikelola di bawah satu worker process, dan setiap worker process terdiri atas unit yang lebih kecil, 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.

berikut alurnya:

  • Master process: Mengelola worker process dan menangani tugas-tugas administrasi seperti reload konfigurasi.
  • Worker process: Menangani permintaan klien yang datang dan memprosesnya secara langsung.
  • Worker connection: Setiap worker process dapat menangani beberapa worker connection secara bersamaan untuk memproses berbagai permintaan klien.

Klien ---> Worker Connection ---> Worker Process ---> Master Process
                        ^                                           |                 
                    Menangani           Menangani lebih dari  
                    satu koneksi        satu worker connection

KELEBIHAN
berikut 5 kelebihan dari web server NGINX:
  1. Efisiensi: Performa tinggi, minim mengonsumsi sumber daya dan stabil.
  2. Peforma: Mampu menghandle ribuan koneksi dalam satu waktu yang sama.
  3. Multifungsi: Dapat dijadikan server Load balacer, Cache konten, dan Server proxy.
  4. Popularitas dan Penggunaan: Paling banyak digunakan sebagai server E-comerce, High traffic, Cloud storage.
  5. DUkungan Komunitas: Dukungan support bersifat komunitas, sehingga mudah troubleshoot secara mandiri.

KESIMPULAN
Dengan kombinasi efisiensi, fleksibilitas, dan kemampuan menangani beban besar, Nginx telah menjadi pilihan favorit untuk banyak aplikasi modern di berbagai industri.




REFERENSI:
Previous Post Next Post