Selasa, 17 September 2024

Pengertian NGINX

NGINX adalah software web server



NGINX (baca: engine-x) adalah software sweb server yang dikembangkan oleh seorang insinyur software asal Rusia yang bernama Igor Sysoev. Meskipun sering disebut sebagai web server, NGINX sebenarnya memiliki banyak fungsi lain yang membuatnya menjadi alat yang sangat berguna bagi para pengembang web dan sistem administrator. NGINX pertama kali dirilis secara publik pada bulan Oktober 2004.

Ketika dirilis, NGINX hanya berfungsi sebagai HTTP web serving saja. Namun, sekarang software ini juga berperan sebagai reverse proxy, HTTP load balancer, dan email proxy untuk IMAP, POP3, dan SMTP. Beberapa perusahaan dan platform terkemuka juga menggunakan NGINX untuk mengoptimalkan kinerja dan keamanan layanan mereka, seperti Google, Netflix, Adobe, Cloudflare, WordPress.com, dan masih banyak lagi.

 

5 Kelebihan NGINX

  1. Kemampuan Menangani Beban Tinggi

  2. Proxy dan Load Balancing yang Kuat

  3. Efisiensi Penggunaan Sumber Daya

  4. Dukungan OS (Sistem Operasi)

  5. Pemeliharaan Konfigurasi Real-time

Perbandingan NGINX & Apache Server 

Menurut survey dari W3Techs, ada sekitar 34% website menggunakan server NGINX, dan 30% website menggunakan Apache sebagai web server mereka. Sebagai dua server yang sering digunakan, NGINX dan Apache seringkali dibandingkan. 

 Terlebih, NGINX pertama kali dikembangkan untuk melengkapi keterbatasan performa server Apache. Apache sendiri dikembangkan pada tahun 1995, dan dengan cepat menjadi salah satu platform web server paling populer di dunia yang dikenal dengan stabilitas, keamanan, dan fleksibilitasnya. NGINX dan Apache dibuat untuk mengakomodasi beragam beban kerja dan bekerja dengan beragam perangkat lunak, sehingga menghasilkan tumpukan web yang kuat.

 

Arsitektur

  • Apache

Menggunakan arsitektur berbasis proses (process-based) yang membuatnya cocok untuk menangani tugas-tugas yang kompleks dan kompleksitas tinggi. Setiap koneksi client menghasilkan proses baru.

  • NGINX

Memiliki arsitektur yang asinkron dan event-driven yang membuatnya efisien dalam menangani banyak koneksi bersamaan tanpa membutuhkan banyak sumber daya.

Konfigurasi dan Readability

  • Apache

Konfigurasi Apache menggunakan file konfigurasi yang lebih tradisional dan seringkali dianggap lebih ekspresif oleh beberapa administrator sistem.

  • NGINX

Sintaksis konfigurasi yang sederhana dan mudah dibaca telah membuat NGINX dianggap lebih nyaman di kalangan pengguna.

Tujuan Penggunaan

  • Apache

Cocok untuk berbagai kasus penggunaan, termasuk server statis dan dinamis, aplikasi web, dan hosting bersama.

  • NGINX

Lebih dikenal sebagai server yang efisien untuk melayani konten statis, menjadi reverse proxy untuk aplikasi server, dan menangani banyak koneksi bersamaan.

 

 Cara kerja NGNIX

 cara kerja NGINX

 

NGINX bekerja berdasarkan model event-driven dan asinkron. Artinya, setiap worker process dapat menangani banyak koneksi atau permintaan (request) secara bersamaan tanpa harus menunggu penyelesaian satu permintaan sebelum melanjutkan yang lain.

Ini berbeda dengan pendekatan single-thread yang digunakan pada beberapa server web tradisional seperti Apache, di mana prosesnya hanya menjalankan satu urutan instruksi pada satu waktu tertentu.

Ketika NGINX dijalankan, sebuah master process dimulai. 

Proses ini bertanggung jawab atas pengelolaan konfigurasi dan koordinasi tugas-tugas utama. Master process membaca konfigurasi, memuat modul-modul yang diperlukan, dan membuat worker process. NGINX dapat memiliki beberapa worker process, dan setiap worker process beroperasi secara independen satu sama lain. Masing-masing worker process menangani sejumlah koneksi atau permintaan secara bersamaan. 

Setiap worker process dibagi menjadi unit-unit yang lebih kecil yang disebut worker connection. Ini adalah unit dasar yang menangani koneksi dan permintaan. Dalam konteks event-driven, NGINX mengamati berbagai peristiwa (events) seperti koneksi baru, data yang dapat dibaca, atau penutupan koneksi.

Ketika ada permintaan masuk, worker connection menerima permintaan tersebut. Worker connection memproses permintaan tersebut dan mengirimkannya ke worker process yang bersangkutan.Setelah selesai diproses, worker process mengirimkan respons kembali melalui worker connection kepada pengguna.Dengan pendekatan ini, NGINX dapat memberikan kinerja yang optimal dalam menangani banyak koneksi dan permintaan secara efisien.

 

Kesimpulan

Jadi, NGINX merupakan server web, reverse proxy, dan load balancer yang sangat efisien dalam menangani beban dan traffic yang tinggi. 

Dukungan untuk berbagai platform dan fleksibilitas konfigurasi membuat NGINX menjadi solusi yang populer di kalangan pengelola sistem untuk mengoptimalkan kinerja server dan meningkatkan ketersediaan layanan web.

Contoh bahwa situs-situs web terkenal seperti Netflix, Adobe, Google, dan lainnya mempercayakan NGINX sebagai web server menunjukkan tingginya kepercayaan industri terhadap kehandalan dan kinerja NGINX.

 

 

 

 

 Referensi

https://w3techs.com/technologies/comparison/ws-apache,ws-nginx

https://dcloud.co.id/blog/apa-itu-nginx.html

0 komentar:

Posting Komentar