Jika kemarin GudPeople sudah belajar mengenai apa itu Apache, saatnya Anda menambah pengetahuan tentang web server Nginx (eja: engine-ex). Lalu, apa itu Nginx?
Seperti Apache yang dibahas minggu lalu, Nginx adalah sebuah web server.
Di sini, kami akan membahas mengenai apa itu Nginx, cara kerjanya, kelebihan dan kekurangan serta perbandingannya dengan Apache.
Apa Itu Nginx
Seperti yang sudah dijelaskan sebelumnya Nginx adalah web server yang bersifat open-source.
Seiring dengan suksesnya Nginx sebagai web-server, sekarang Nginx juga digunakan sebagai HTTP cache, load balance, dan juga reverse proxy.
Dirilis ke publik di tahun 2004 bulan Oktober, server web buatan Igor Sysoev ini dipercaya oleh perusahaan-perusahaan besar seperti GitLab, Microsoft, DuckDuckGo, IBM, Apple, Intel, Twitter, dan lain-lain.
Pada awalnya, Nginx adalah software yang dibuat untuk menyelesaikan persoalan performa web server yang menghandle 10 ribu concurrent connection.
Karena ini lah akhirnya Nginx bisa dianggap sebagai web server yang powerful dan reliable.
Cara Kerja Nginx
Alih-alih membuat proses informasi baru untuk tip web request, request tersebut diurus dalam satu thread saja sehingga Nginx tidak memerlukan banyak memori.
Biasanya, cara kerja web server adalah seperti ini, ketika klien membuat request atau permintaan untuk membuka suatu halaman website, browser akan mengirim pesan ke server dari website yang dituju.
Setelah itu, server akan mencari file yang diminta untuk membuka halaman web dan mengirimkannya kembali.
Namun kinerja single-thread Nginx berbeda dari yang sebelumnya dijelaskan.
Nginx memiliki arsitektur yang bersifat asinkron dan event-driven. Ini artinya, Nginx mengelola thread yang sama dalam satu worker process.
Pada tiap worker process, terdapat unit yang lebih kecil bernama worker connection. Kesuluran ini bekerja sama untuk mengelola thread request.
Nah, guna dari worker connection ini adalah untuk menyampaikan request ke worker process dan juga ke master process.
Di bagian akhir proses ini, master process akan menyediakan file yang sebelumnya diminta melalui request tadi.
Sebagai informasi tambahan, satu worker connection dapat mengelola lebih dari 1000 request yang sama. Itulah mengapa Nginx dapat memproses ribuan request tanpa suatu kendala berarti.
Kelebihan Nginx
Mengerti kinerja Nginx membuat Anda terbayang akan kelebihan-kelebihan yang ditawarkan oleh software satu ini, bukan?
Nah, untuk itu, mari ketahui satu-persatu apa saja kelebihan yang dimiliki oleh Nginx.
- Instalasi dan konfigurasinya ringkas dan mudah untuk dilakukan
- Untuk menyajikan file statis, Nginx mampu melakukannya dengan cepat
- Dapat mengubah konten dinamis ke konten statis
- 4x lebih bisa mengendalikan koneksi bersamaan
- Kompatibel dengan aplikasi web yang digunakan oleh kebanyakan orang
- Dapat mengonfigurasi load balancing
- Mempercepat loading website
- Banyak source dan komunitas untuk membantu problem-solving
- Memiliki tim support professional
Nah, itu tadi kelebihan-kelebihan dari Nginx. Namun, di atas kelebihan-kelebihan Nginx, ada beberapa kekurangan juga.
Kekurangan Nginx
Seperti produk lainnya, pasti ada suatu kekurangan yang dimiliki. Berikut ini adalah beberapa kekurangan Nginx,
- Sulit untuk membuat modul
- Sulit mendukung HTTP/1.0 dengan komunikasi backend
Walau terdapat kekurangan, solusi dari kekurangan Nginx masih bisa ditemukan dan dilakukan.
Jika kesulitan untuk membuat modul, GudPeople tidak perlu khawatir karena official documentation dan komunitas Nginx dapat membantu Anda.
Sedangkan untuk permasalahan dukungan HTTP/1.0, kini perkembangan AJP module memungkinkan Anda mengganti HTTP/1.0 dengan menyambungkan Nginx dan Tomcat.
Perbandingan Nginx dengan Apache
Sebelumnya, kami pernah membahas Apache. Jika Anda belum membacanya, silakan baca artikel kami mengenai Apa Itu Apache? Penjelasan Mengenai Apache Web Server.
Nah, jika sudah membacanya, mari lanjut membahas perbandingan antara Nginx dengan Apache.
1. Popularitas
Mungkin jika bicara tentang kepopuleran, Apache juga patut untuk diperhitungkan. Di tahun 2018, mereka sempat merajai peringkat web-server terpopuler dengan 47% pengguna.
Namun begitu, jika berbicara dengan data, ternyata Nginx lebih populer di kalangan website yang bertrafik tinggi, loh Gud People.
2. Pembuatan Modul
Jika membandingkan Apache dengan Nginx perihal pembuatan module, Apache jauh lebih mudah karena Apache memiliki fungsi Apache Portable Runtime.
Sedangkan modul Nginx harus dipilih dan disatukan di dalam inti softwarenya karena modul-modul Nginx tidak dapat dimuat secara dinamis.
Ini membuat Nginx kurang fleksibel bila dibandingkan dengan Apache.
3. Meng-handle Request atau Permintaan
Karena arsitektur keduanya yang berbeda, cara Apache dan Nginx dalam meng-handle request pun juga menjadi sangat berbeda.
Seperti yang sudah dibahas sebelumnya, Nginx menggunakan arsitektur yang asinkron dan bersifat non-blocking event-driven.
Ini membuat Nginx mampu mengelola trafik yang sangat banyak.
Di samping itu, dalam pengelolaan file statis, Nginx masih mampu mengungguli Apache.
Apache memang masih memiliki masalah perkara mengelola permintaan.
Walaupun Apache telah mengembangkan multi-threaded worker mpm, tetap saja Nginx masih unggul dalam hal ini.
Nah, sekarang untuk keputusan memilih antara Apache atau Nginx, tentunya pilihan yang tepat akan jatuh pada pertimbangan Anda sendiri.
Kesimpulan
Melalui artikel ini, Anda telah mempelajari apa itu Nginx. Jadi, Nginx adalah web server yang mampu mengelola trafik website yang besar.
Selain mengetahui apa itu Nginx, Anda juga sudah memahami cara kerja Nginx yang ternyata berbeda dengan web server konvensional seperti Apache.
Nah, di artikel ini juga Anda mendapati kelebihan apa saja yang dimiliki oleh Nginx serta kekurangannya.
Walau Nginx memiliki kekurangan, masalah tersebut masih dapat diatasi dan tidak mengurangi pamor Nginx sebagai web server yang powerful dan dapat diandalkan.
Jika Anda memiliki pengalaman saat menggunakan web server Nginx, silakan bagikan pengalaman Anda di kolom komentar.
Sampai jumpa di artikel selanjutnya!