Nginx web server

Salah satu fundamental di dunia internet adalah adanya web server yang memberikan layanan informasi dalam segala bentuk baik text, gambar, video dan model lainnya. Web server melayani request dari pengguna internet untuk mendapatkan informasi yang dicari. Mari kita mengenal nginx web server, salah satu web server yang paling banyak digunakan di internet.

Biasanya Nginx juga digunakan sebagai web server dalam layanan hosting.

Apa itu Nginx ?

Nginx adalah aplikasi yang berfungsi sebagai web server yang memiliki beberapa fungsi seperti reverse proxy, load balancing dan caching. Berbeda dengan web server lainnya yang hanya bisa melayani web server saja seperti apache, litespeed dan lain lainnya. Nginx di desain untuk menangani web server dengan jumlah visitor yang tinggi serta lebih stabil jika dibandingkan dengan web server lainnya.

Arsitektur Nginx

Desain dari nginx adalah menggunakan konsep master slave dengan mengimplementasi model event-driven, asynchonous, dan non-blocking model dimana semuanya dikombinasikan untuk menghasilkan performa yang tinggi.

Nginx menggunakan konsep multiplexing dan event notifications dalam melayani sebuah request. Sebagai contoh jika ada 10 orang visitor, maka nginx akan membuka worker (pekerja) untuk melayani 10 orang tersebut (setiap visitor akan dihandle oleh satu worker)

Worker menerima request dari socket yang ada kemudian menjalankan request tersebut dalam sebuah worker dimana didalamnya memungkinkan untuk menyelesaikan ribuan request.

Master membaca dan memvalidasi konfigurasi yang ada dengan melakukan proses create, binding dan crossing socket dan juga menghandle proses awal, terminasi dan memanajemen worker yang ada.

Proxy caches adalah proses yang spesial dimana terdapat cache loader dan manager. Fungsi dari cache loader adalah melakukan pengecekan disk cache dan mengisi database (berupa memory) dengan cache metadata. Nginx worker akan melakukan pengecekan apakah cache tersebut bisa digunakan lagi ketika ada visitor yang meminta sebuah konten. Untuk cache manager sendiri fungsinya adalah untuk menghandle masa berlaku cache serta melakukan proses validasi.

Keuntungan dari Nginx

  • Mengurangi load time dari website, dimana latensi dari sebuah website akan sangat rendah sehingga user experience akan meningkat.
  • Performance akan meningkat dengan mengarahkan trafik pada webserver (dikerjakan oleh worker).
  • Berfungsi juga sebagai load balancer (tanpa biaya lagi).
  • Menawarkan scalability (peningkatan) untuk menghandle visitor yang tinggi.
  • Upgrade bisa dilakukan secara instan (on the fly).

Kelemahan dari Nginx

Nginx webserver memerlukan setup / konfigurasi yang dilakukan oleh seorang server engineer yang memiliki kemampuan khusus karena setiap nginx webserver berbeda antara satu konfigurasi dengan konfigurasi yang lainnya.

Nginx juga memiliki fitur premium namun berbayar yang bisa disebut dengan Nginx plus dimana didalamnya memiliki fitur komplit sampai dengan api gateway, microservices dimana biayanya adalah sekitar $2500 per tahun.

Beberapa dari Nginx digunakan untuk

  • Web server.
  • Reverse proxy server.
  • Load balancer.
  • Api gateway.
  • Cache.
  • Proteksi dari serangan DDoS.
  • k8s (kubernetes).
  • Sidecar proxy, mengatur trafik dari dan ke kontainer dalam kubernetes.

Jika kamu pengen Mengenal Nginx web server lebih dalam, akan diulas dalam artikel lainnya informasi untuk instalasi, konfigurasi sampai dengan monitor nginx webserver.