Nginx VS Apache: Difference between revisions
| Line 82: | Line 82: | ||
==NGINX dan Apache – Bekerja sama== | ==NGINX dan Apache – Bekerja sama== | ||
Untuk banyak aplikasi, NGINX dan Apache saling melengkapi dengan baik. Pola awal yang sangat umum adalah menerapkan perangkat lunak NGINX open-source sebagai proxy (atau NGINX Plus sebagai platform pengiriman aplikasi) di depan aplikasi web berbasis Apache. NGINX melakukan tugas berat terkait HTTP – menyajikan file statis, menyimpan konten, dan membongkar koneksi HTTP yang lambat – sehingga server Apache dapat menjalankan kode aplikasi di lingkungan yang aman dan terlindungi. | Untuk banyak aplikasi, NGINX dan Apache saling melengkapi dengan baik. Pola awal yang sangat umum adalah menerapkan perangkat lunak NGINX open-source sebagai proxy (atau NGINX Plus sebagai platform pengiriman aplikasi) di depan aplikasi web berbasis Apache. NGINX melakukan tugas berat terkait HTTP – menyajikan file statis, menyimpan konten, dan membongkar koneksi HTTP yang lambat – sehingga server Apache dapat menjalankan kode aplikasi di lingkungan yang aman dan terlindungi. | ||
==Terkait== | |||
*[[Nginx]] | |||
*[[Apache]] | |||
==Source== | ==Source== | ||
Latest revision as of 14:53, 7 December 2021
Dua server web (Sumber) open-source paling populer yang mendukung Internet saat ini adalah server HTTP Apache dan NGINX. Lebih dari 50% situs web di dunia berjalan di dua server web ini. Selama hampir dua dekade, server Web Apache melayani sekitar 60 persen situs web dunia hingga pesaingnya NGINX (diucapkan sebagai "engine-x") muncul. Karena pertumbuhan eksplosif dalam volume lalu lintas data dan jumlah pengguna web di seluruh dunia, NGINX diperkenalkan untuk mengatasi keterbatasan kinerja server web Apache. NGINX, dirancang untuk konkurensi yang lebih tinggi, dapat digunakan sebagai server web mandiri, dan sebagai proxy frontend untuk Apache dan server web lainnya.
Apa itu Apache
Apache dikembangkan untuk mengirimkan konten web yang diakses melalui internet. Hal ini penting untuk memainkan peran kunci dalam pertumbuhan awal dari World Wide Web. Apache adalah perangkat lunak sumber terbuka yang dikembangkan dan dikelola oleh komunitas pengembang terbuka dan berjalan di berbagai sistem operasi. Arsitekturnya mencakup Apache Core dan modul. Komponen inti menyediakan kemampuan seperti server dasar, sehingga menerima koneksi dan mengelola konkurensi. Berbagai modul sesuai dengan fungsi berbeda yang dijalankan pada setiap permintaan. Penyebaran Apache tertentu dapat dikonfigurasi untuk menyertakan modul yang berbeda seperti fitur keamanan, pengelolaan konten dinamis atau untuk pemrosesan permintaan HTTP dasar.
Model “satu server-melakukan-semua” adalah kunci keberhasilan awal Apache. Namun, karena tingkat lalu lintas meningkat dan halaman web menjadi lebih kaya dan kinerja menjadi kendala, penyetelan Apache untuk mengatasi lalu lintas dunia nyata menjadi rumit.
Apa itu NGINX
NGINX ditulis secara khusus untuk mengatasi keterbatasan kinerja server web Apache. Kinerja dan skalabilitas NGINX muncul dari arsitektur yang digerakkan oleh peristiwa. Ini berbeda secara signifikan dari pendekatan proses-atau-utas-per-koneksi Apache. Di NGINX, setiap proses pekerja dapat menangani ribuan koneksi HTTP secara bersamaan. Oleh karena itu NGINX merupakan implementasi yang ringan, terukur, dan memiliki kinerja tinggi. Arsitektur ini membuat penanganan beban data yang tinggi dan berfluktuasi jauh lebih dapat diprediksi dalam hal penggunaan RAM, penggunaan CPU, dan latensi.
NGINX juga memiliki serangkaian fitur yang kaya dan dapat melakukan berbagai peran server:
- Server proxy terbalik untuk protokol HTTP, HTTPS, SMTP, POP3, dan IMAP
- Penyeimbang beban dan cache HTTP
- Proxy frontend untuk Apache dan server web lainnya, menggabungkan fleksibilitas Apache dengan kinerja konten statis yang baik dari NGINX
Perbedaan antara Apache dan Nginx
1. Kesederhanaan
Mengembangkan dan berinovasi aplikasi di Apache itu mudah. Model satu koneksi per proses membuatnya sangat mudah untuk menyisipkan modul di titik mana pun dalam logika penyajian webnya. Pengembang dapat menambahkan kode sedemikian rupa sehingga jika ada kegagalan hanya proses pekerja yang menjalankan kode yang akan terpengaruh. Pemrosesan semua koneksi lainnya akan terus berlanjut tanpa gangguan.
NGINX, di sisi lain, memiliki arsitektur yang canggih sehingga mengembangkan modul tidak mudah. Pengembang modul NGINX harus sangat berhati-hati untuk membuat kode yang efisien dan akurat, tanpa kegagalan, dan untuk berinteraksi secara tepat dengan kernel yang digerakkan oleh peristiwa yang kompleks untuk menghindari operasi pemblokiran.
2. Kinerja
Kinerja diukur dengan bagaimana server mengirimkan konten dalam volume besar ke browser klien dan ini merupakan faktor penting. Konten bisa Statis atau Dinamis.
Mari kita lihat beberapa statistik tentang ini.
Konten Statis
NGINX berkinerja 2,5 kali lebih cepat dari Apache menurut uji benchmark yang dilakukan dengan menjalankan hingga 1.000 koneksi simultan. Benchmark lain yang berjalan dengan 512 koneksi simultan, menunjukkan bahwa NGINX sekitar dua kali lebih cepat dan menggunakan lebih sedikit memori. Tidak diragukan lagi, NGINX memiliki keunggulan dibandingkan Apache dengan konten statis. Jadi, jika Anda perlu menyajikan konten statis bersamaan, NGINX adalah pilihan yang lebih disukai.
Konten Dinamis
Untuk menampilkan konten dinamis, hasil pengujian benchmark Speedemy mengungkapkan bahwa performa Nginx vs Apache untuk keduanya sama persis. Alasan yang mungkin untuk ini adalah, hampir semua waktu pemrosesan permintaan dihabiskan di lingkungan runtime PHP daripada bagian inti dari server web. Lingkungan runtime PHP sangat mirip dengan kedua server web.
Apache juga dapat memproses konten dinamis dengan menyematkan prosesor bahasa seperti PHP ke dalam setiap instance pekerjanya. Ini memungkinkannya untuk mengeksekusi konten dinamis di dalam server web itu sendiri tanpa harus bergantung pada komponen eksternal. Prosesor dinamis ini dapat diaktifkan melalui penggunaan modul yang dapat dimuat secara dinamis.
NGINX tidak memiliki kemampuan untuk memproses konten dinamis secara native. Untuk menangani PHP dan permintaan lain untuk konten dinamis, NGINX harus diteruskan ke prosesor eksternal untuk dieksekusi dan menunggu konten yang dirender dikirim kembali. Namun, metode ini juga memiliki beberapa kelebihan. Karena interpreter dinamis tidak disematkan dalam proses pekerja, overhead-nya hanya akan ada untuk konten dinamis.
3. Dukungan OS
Apache berjalan di semua sistem operasi seperti UNIX, Linux atau BSD dan memiliki dukungan penuh untuk Microsoft Windows. NGINX juga berjalan pada beberapa sistem mirip Unix modern dan memiliki dukungan untuk Windows, tetapi kinerjanya pada Windows tidak stabil seperti pada platform UNIX.
4. Keamanan
Baik Apache dan NGINX adalah server web yang aman. Tim Keamanan Apache hadir untuk memberikan bantuan dan saran kepada proyek Apache tentang masalah keamanan dan untuk mengoordinasikan penanganan kerentanan keamanan. Penting untuk mengonfigurasi server dengan benar dan mengetahui apa yang dilakukan setiap opsi dalam pengaturan. Ada banyak panduan untuk mengamankan server untuk mencegah serangan keamanan.
5. Fleksibilitas
Server web dapat dikustomisasi dengan menambahkan modul. Apache telah memuat modul dinamis untuk waktu yang lama, jadi semua modul Apache mendukung ini.
NGINX Plus (NGINX Plus adalah penyeimbang beban perangkat lunak, server web, dan cache konten yang dibangun di atas NGINX open source) menggunakan arsitektur modular juga. Fitur dan fungsionalitas baru dapat ditambahkan dengan modul perangkat lunak, yang dapat dicolokkan ke instans NGINX Plus yang sedang berjalan sesuai permintaan. Modul dinamis menambahkan fungsionalitas ke NGINX Plus seperti geo-lokasi pengguna berdasarkan alamat IP, mengubah ukuran gambar, dan menyematkan skrip Lua ke dalam model pemrosesan peristiwa NGINX Plus. Modul dibuat oleh NGINX, Inc., dan pengembang pihak ketiga.
Mayoritas fungsionalitas modul inti yang diperlukan (misalnya, proxy, caching, load-balancing) didukung oleh kedua server web.
6. Dukungan dan Dokumentasi
Poin utama yang perlu dipertimbangkan adalah bantuan dan dukungan yang tersedia untuk server web di antara perangkat lunak lainnya. Karena Apache telah populer begitu lama, dukungan untuk server cukup tersedia di mana-mana. Ada perpustakaan besar dokumentasi pihak pertama dan ketiga yang tersedia untuk server inti dan untuk skenario berbasis tugas yang melibatkan menghubungkan Apache dengan perangkat lunak lain.
Seiring dengan dokumentasi, banyak alat dan proyek web menyertakan alat untuk bootstrap sendiri dalam lingkungan Apache. Ini mungkin termasuk dalam proyek itu sendiri, atau dalam paket yang dikelola oleh tim pengemasan distribusi Anda.
Apache, secara umum, memiliki lebih banyak dukungan dari proyek pihak ketiga hanya karena pangsa pasarnya dan lamanya waktu tersedia.
Untuk NGINX, di masa lalu, sulit untuk menemukan dokumentasi bahasa Inggris yang komprehensif karena fakta bahwa sebagian besar pengembangan dan dokumentasi awal dalam bahasa Rusia. Namun, hari ini dokumentasi telah diisi dan sekarang ada banyak sumber daya administrasi di situs NGINX dan dokumentasi yang tersedia oleh pihak ketiga.
Nginx vs Apache: Perbandingan Head to Head
Untuk meringkas, berikut adalah tampilan tabular dari set fitur antara Nginx vs Apache:
| Fitur | Apache | Nginx |
|---|---|---|
| Simplicity | Easy to develop and innovate because of its one-connection-per-process model | Complex to develop as it has a sophisticated architecture to handle multiple connections concurrently. |
| Performance – Static Content | Slow in displaying static content | 2.5 times faster than Apache and consumes less memory |
| Performance –Dynamic Content | Excellent Performance for dynamic content | Excellent Performance for dynamic content |
| Operating system support | Supports all OS – Unix like and Windows | Supports all OS – Unix like and windows however performance on Windows is comparatively less stable. |
| Security | Is a secure web server. Understanding and configuring the security features are important | Is a secure web server. Understanding and configuring the security features are important |
| Flexibility | It can be customized by adding modules. Apache had dynamic module loading for the longest time. | NGINX version 1.11.5 and NGINX Plus Release R11 introduced compatibility for dynamic modules. |
| Support and Documentation | Excellent support and documentation are available as it has been in the market for a very long time. | Though there was a weak start for support and documentation for NGINX, it has grown rapidly hence now it has excellent resource support and documentation available. |
NGINX dan Apache – Bekerja sama
Untuk banyak aplikasi, NGINX dan Apache saling melengkapi dengan baik. Pola awal yang sangat umum adalah menerapkan perangkat lunak NGINX open-source sebagai proxy (atau NGINX Plus sebagai platform pengiriman aplikasi) di depan aplikasi web berbasis Apache. NGINX melakukan tugas berat terkait HTTP – menyajikan file statis, menyimpan konten, dan membongkar koneksi HTTP yang lambat – sehingga server Apache dapat menjalankan kode aplikasi di lingkungan yang aman dan terlindungi.