Nginx, yang dibaca “engine x” memiliki keistimewaan tersendiri dibandingkan Apache. Chris Lea ketika di WordCamp SF 2008 pernah menganalogikan, Apache itu bagaikan Microsoft Word, memiliki jutaan fungsi tetapi Anda hanya butuh 6. Nginx melakukan 6 hal itu, dan dia melakukannya 50 kali lebih cepat daripada Apache.”
Nginx biasanya dikenal sebagai Web server yang gesit dan efisien dalam menampilkan konten statik. Nginx diklaim minim dalam penggunaan memori dan sangat direkomendasikan untuk website-website yang berjalan di atas VPS. Untuk mengenal lebih dekat, marilah kita telaah bersama-sama alasan nginx bisa berlari lebih kencang.
Nginx biasanya dikenal sebagai Web server yang gesit dan efisien dalam menampilkan konten statik. Nginx diklaim minim dalam penggunaan memori dan sangat direkomendasikan untuk website-website yang berjalan di atas VPS. Untuk mengenal lebih dekat, marilah kita telaah bersama-sama alasan nginx bisa berlari lebih kencang.
Arsitektur
Pertama kita harus tahu perbedaan arsitektur antara dua Web server ini. Apache merupakan process-based sedangkan Nginx merupakan event-based. Mungkin pertanyaan Anda berikutnya adalah “Lalu memangnya kenapa kalau arsitektur Nginx event-based?” Dikarenakan event-based mampu memanfaatkan seminimal mungkin thread untuk memproses request dari user, sehingga memori yang terpakai di Nginx menjadi minimal. Karena memori yang dipakai sangat kecil, hasilnya server menjadi ringan dan jauh lebih responsif.
mari kita mengambil sebuah analogi. Analogi ini terinspirasi dari Web daverecycles.com. Anggap Web Server adalah sebuah restoran yang menerima orderan lewat telepon. Ketika user mengakses halaman Web, maka analoginya adalah seseorang menelepon ke restoran untuk memesan makanan.
Ceritanya terdapat dua buah restoran terkenal yaitu restoran Apache dan restoran Nginx. Di restoran Apache ketika seseorang menelepon untuk memesan makanan, maka operator akan mengangkat telepon, mencatat pesanan dan menunggu makanan siap sambil terus mengangkat telepon. Ketika makanan siap baru memberitahukan ke pelanggan dan menutup telepon. Kalau ada orang lain yang menelepon, maka diperlukan operator lain yang mengangkat. Jadi kalau dalam satu waktu ada 10 orang yang menelepon, maka diperlukan 10 operator untuk melayani.
Berbeda dengan restoran Nginx. Di restoran ini, sang operator lebih terlatih dan terdidik. Ketika seseorang memesan makanan, sang operator akan mencatatnya, lalu menutup telepon. Setelah makanan sudah siap, baru menelepon kembali ke pelanggan. Jadi sang operator bisa melayani beberapa pesanan sekaligus.
Pada cerita di atas, operator telepon merupakan analogi dari “thread”. Thread-lah yang biasanya menghabiskan memori. Jadi semakin banyak thread yang terpakai, semakin banyak memori yang terkuras. Itu sebabnya Apache tidak akan mengalami masalah selama hanya sedikit orang yang mengaksesnya. Tetapi baru akan menjadi berat dan lambat kalau sudah banyak orang mengaksesnya sekaligus.
Ceritanya terdapat dua buah restoran terkenal yaitu restoran Apache dan restoran Nginx. Di restoran Apache ketika seseorang menelepon untuk memesan makanan, maka operator akan mengangkat telepon, mencatat pesanan dan menunggu makanan siap sambil terus mengangkat telepon. Ketika makanan siap baru memberitahukan ke pelanggan dan menutup telepon. Kalau ada orang lain yang menelepon, maka diperlukan operator lain yang mengangkat. Jadi kalau dalam satu waktu ada 10 orang yang menelepon, maka diperlukan 10 operator untuk melayani.
Berbeda dengan restoran Nginx. Di restoran ini, sang operator lebih terlatih dan terdidik. Ketika seseorang memesan makanan, sang operator akan mencatatnya, lalu menutup telepon. Setelah makanan sudah siap, baru menelepon kembali ke pelanggan. Jadi sang operator bisa melayani beberapa pesanan sekaligus.
Pada cerita di atas, operator telepon merupakan analogi dari “thread”. Thread-lah yang biasanya menghabiskan memori. Jadi semakin banyak thread yang terpakai, semakin banyak memori yang terkuras. Itu sebabnya Apache tidak akan mengalami masalah selama hanya sedikit orang yang mengaksesnya. Tetapi baru akan menjadi berat dan lambat kalau sudah banyak orang mengaksesnya sekaligus.
mungkin itu analogi dari perbedaan nginx dengan apache.