Nginx, banyak orang membicarakan, meski kadang salah di pelafalannya. Nginx (di baca engine x, bukan enging). Apa sih nginx itu? Nginx itu sebetulnya Web server yang sama-sama open source, layaknya apache.
Jika dilihat fakta saat ini, sudah jadi rahasia umum jika apache sudah sedemikian populernya dan digunakan di hampir semua layanan hosting yang ada di dunia. Meskipun apache sangat populer, tapi tetap saja belum bisa menangani kebutuhan web server yang memiliki HIGH TRAFIC. Sehingga beberapa orang dalam komunitas memaksakan diri untuk membuat solusi alternatif, sebuah web server yang memang ditujukan penggunaan lebih kepada Performa, kemudahan, kecepatan. Sehingga bisa menghandle lalu lintas trafik yang amat padat.
Pada 2008 yang lalu dalam sebuah acara konferensi wordpress dunia, Wordcamp SF di tahun 2008, salah satu nara sumber, Chris Lea, mengatakan nginx itu 50 kali lebih cepat di banding apache. Wajar jika web server dengan trafik yang padat seperti kaskus, indowebster, kompas, wordpress.com dan lain-lain menggunakan nginx sebagai tulang punggung web servernya. Dalam artikel kali ini kita akan membahas 5 alasan mengapa beralih dari apache ke nginx?
1. Arsitektur Nginx
Salah satu yang membuat nginx menjadi sangat cepat adalah jenis arsitektur nginx itu sendiri. Jika di bandingkan dengan apache yang process based, nginx menjadi jauh lebih unggul karena event-based nya. Sehingga mampu memanfaatkan seminimal mungkin thread untuk memproses request dari user, sehingga akhirnya memori yang terpakai oleh Nginx menjadi minimal. Karena memori yang dipakai sangat kecil, maka hasilnya server menjadi ringan dan jauh-jauh lebih responsif (memiliki respon super cepat).Bingung ya dengan istilah process-based pada apache dan event-based pada nginx? Kita bahas lebih detil.
Nginx dengan event-basednya, dan apache dengan process-based, bisa dengan analogi restoran. Anggaplah kita mengetahui ada dua restoran siap saji, yang pertama adalah restoran apache, dan yang satu lagi adalah restoran nginx.
Analogi restoran apache seperti ini. Suatu hari ada pemesan yang menelepon ke restoran siap saji apache, untuk memesan beberapa jenis makanan. Maka operator akan mengangkat telepon dan menanyakan akan memesan makanan apa, sekaligus mencatatnya. Operator sambil mengangkat telepon kemudian mengirimkan daftar makanan yang dipesan, lalu menunggu makanan yang dipesan tersebut siap. Jika makanan sudah siap maka operator (sambil mengangkat telepon si pemesan) memberitahukan bahwa makanan sudah siap tinggal di kirimkan. Setelah makanan yang dipesan semuanya selesai maka operator kemudian menutup telepon, dan baru bisa kembali mengangkat telepon untuk pemesan selanjutnya. Sehingga jika ada 10 pemesan berbarengan maka diperlukan 10 operator. Jika dalam kondisi server yang sesungguhnya terjadi kelambatan karena memakan resource server yang berlebihan untuk menangani request dari user.
Yang terjadi di nginx adalah seperti ini. Direstoran nginx operatornya sangat terdidik dan terlatih sehingga apabila ada pemesan menelepon, maka operator akan mengangkat menanyakan dan mencatat makanan apa yang dipesan kemudian langsung menutup telepon. Setelah makanan siap barulah operator menelepon kembali si pemesan, bahwa makanan telah siap dan langsung dikirimkan. Sehingga si operator bisa melayani beberapa pesanan sekaligus. Tanpa ada waktu tunggu yang terlalu lama.
2. Performa Mantap Ala Nginx
Apabila dilihat cerita tentang restoran yang sebelumnya, operator telepon ketika mengangkat telepon dari pemesan merupakan analogi dari “thread”. Thread-lah yang biasanya menghabiskan memori. Semakin banyak thread yang terpakai, maka semakin banyak memori yang terkuras. Ini sebabnya Apache tidak akan mengalami masalah selama hanya sedikit orang yang mengaksesnya. Tetapi baru akan menjadi berat dan lambat ketika sudah banyak orang mengaksesnya sekaligus.Apache memiliki jutaan fungsi sedangkan yang digunakan itu hanya 6 saja. Yang mana 6 fungsi ini sudah ada dalam nginx.
Lalu sampai sejauh manakah kemampuan Nginx untuk menghemat memori jika dibandingkan dengan kemampuan Apache? Bob Ippolito sudah membuktikan dengan uji cobanya.
Ia memiliki sebuah server yang dipersiapkan untuk menangani sepuluh juta request setiap harinya, ini berarti server tersebut diharuskan menangani beberapa ratus request per detiknya. Ketika Bob mengujinya dengan menggunakan Nginx (setelah berbagai konfigurasi dan tweak), puncak tertinggi penggunaan memori hanyalah 15MB saja dan hanya memanfaatkan 10% resource CPU.
Dengan beban yang sama, lalu diujikan kepada Apache ternyata Apache gagal akibat menjalankan terlalu banyak thread. Jumlah memori yang terpakai adalah 400MB untuk semua stack thread. Dan bahkan terjadi memory leak sekitar 20MB setiap jamnya.
Intinya nginx memiliki performa jauh-jauh lebih baik ketimbang apache.
3. Fitur Yang Mantap
Anggaplah apache sebagai toserba, toko serba ada yang berisi banyak sekali produk, mulai dari sembako, pakaian, elektronik, keperluan properti, semuanya ada. Beda dengan nginx menyediakan produk yang memang orang kebanyakan cari, misalkan hanya menyediakan sembako saja.Dalam wikivs tercatat bahwa nginx pun memiliki fitur-fitur yang lengkap sesuai kebutuhan sehari-hari, menangani trafik yang sangat padat. Berikut adalah daftar fitur yang memang sesuai kebutuhan :
- Static file serving.
- SSL/TLS support.
- Virtual hosts.
- Reverse proxying.
- Load balancing.
- Compression.
- Access controls.
- URL rewriting.
- Custom logging.
- Server-side includes.
- Limited WebDAV.
- FLV streaming.
- FastCGI.
4. Kemudahan
Ease of Use, kemudahan dalam penggunaan. Menjadi salah satu keunggulan dari nginx. Bagi Anda yang terbiasa mengkonfigurasikan apache, tidak terlalu berbeda jauh dengan nginx. Bedanya konfigurasi di nginx jauh lebih simpel ketimbang apache. Dan sudah banyak tools yang disediakan untuk mempermudah installasi nginx, maupun untuk optimasinya, mempersiapkan nginx untuk bisa digunakan melayani trafik yang padat merayap. Sebagai contohnya CentMin Mod, silahkan baca artikel saya mengenai "CentMinMod : Cara Cepat Bangun Web Server Yang Ngebut Di Server Centos !"5. Semakin di depan
Jika berbicara mengenai popularitas dan jumlah pengguna, Nginx memang belum bisa menandingi Apache. Sebagai contoh, fakta jumlah hosting di Indonesia yang menyediakan server Nginx sendiri masih belum terlalu banyak. Ini karena memang Apache begitu mendominasi dunia Internet. Pada tahun 2009, Apache sudah menembus lebih dari 100 juta website. Dan per bulan Januari 2012, 58% dari seluruh website di dunia menggunakan Apache sebagai web server tulang punggungnya.Walaupun posisi Apache saat ini sulit untuk digeser, namun Nginx juga tidak berpangku tangan. Jumlah Web yang menggunakan Nginx di awal tahun 2011 kemarin adalah 15 juta, dan per bulan November 2011 sudah mencapai 43 juta. Ini berarti terjadi peningkatan sampai 300%, sehingga jelas-jelas bahwa nginx sudah semakin populer, sudah semakin didepan, mengutip tag line iklan salah satu produsen motor populer di indonesia. Kita lihat saja nginx nanti, apakah akan mendominasi dunia internet? Paling tidak performa yang dihasilkan inilah yang harus bisa di manfaatkan oleh Anda yang kedepannya akan memiliki website dengan trafik padat.
0 comments:
Post a Comment