Apache APISIX vs NGINX
February 2, 2024
Menurut statistik W3Techs hingga Juni 2022, NGINX adalah server web yang paling banyak digunakan secara global, menguasai pangsa pasar yang signifikan sebesar 33,6%. Adopsi yang luas dan kinerja yang terpuji telah membangun tingkat kepercayaan yang tinggi di antara pengguna, menjadikannya tolok ukur yang sering digunakan untuk perbandingan.
Hasil Tes Kinerja
Dalam pengujian praktis, kami membandingkan kinerja APISIX dan NGINX dalam skenario sederhana, dengan hasil sebagai berikut:
-
APISIX menunjukkan kinerja QPS sebesar 58.080 pada satu inti CPU, melampaui kinerja NGINX yang mencapai 37.154 pada perangkat keras yang sama.
-
Kinerja APISIX melampaui NGINX dengan selisih yang mengesankan sebesar 56%.
Konfigurasi Tes & Hasil Tes Beban
| APISIX | NGINX | |
|---|---|---|
| QPS Satu Inti | 58080 | 37151 |
| Tes Beban | ![]() | ![]() |
| Konfigurasi Utama | routes: - uri: /hello upstream: nodes: "127.0.0.1:1980": 1 #END | http { access_log off; server { listen 1990; location / { proxy_pass http://127.0.0.1:1980; } } } |
| Perangkat Keras | CPU 1 CORE, 4GB RAM | CPU 1 CORE, 4GB RAM |
| Tingkat Penggunaan CPU | 100% | 100% |
Lingkungan Tes:
-
Host: M1 Macbook Pro
-
Sistem Operasi: Debian

Jika Anda tertarik dengan ini, ada baiknya mencoba mereplikasi tes sendiri, hasilnya relatif mudah untuk direproduksi.
Wawasan Teknis
Menurut diagram arsitektur perangkat lunak yang dirilis secara resmi oleh APISIX, harapan yang wajar adalah bahwa kinerja APISIX seharusnya lebih rendah daripada NGINX. Namun, "kejadian yang tidak biasa sering menunjukkan masalah yang mendasarinya." Mari kita jelajahi beberapa skenario abnormal yang mungkin muncul selama tes beban NGINX.

Mari langsung ke intinya: Hasil kinerja APISIX sesuai dengan yang diharapkan, dan hal yang sama berlaku untuk NGINX. Namun, penting untuk menyadari bahwa skenario pengujian untuk APISIX berfokus pada kinerja QPS di bawah koneksi hidup panjang, sementara untuk NGINX, itu adalah koneksi hidup pendek. Oleh karena itu, perbedaan dalam kinerja QPS adalah wajar.
Koneksi hidup panjang biasanya digunakan dalam skenario yang memerlukan komunikasi berkelanjutan, seperti obrolan real-time atau transmisi data berkelanjutan. Di sisi lain, koneksi hidup pendek cocok untuk kebutuhan komunikasi sementara, seperti akses halaman web biasa dalam mode permintaan-respons HTTP.

Berikut adalah contoh konfigurasi yang wajar untuk NGINX. Dengan konfigurasi ini, Anda akan menemukan peningkatan yang signifikan dalam kinerja satu inti NGINX, biasanya berlipat ganda setidaknya.

Mengapa NGINX Menggunakan Koneksi Hidup Pendek Secara Default?
Lahir pada tahun 2004, NGINX merupakan salah satu proyek open-source tertua, mendekati dua dekade keberadaannya. Untuk memastikan iterasi pengguna yang berkelanjutan dan pengalaman yang konsisten, evolusi fitur NGINX cenderung mendukung kompatibilitas ke depan. Hal ini menjadikannya salah satu dari sedikit layanan proxy Web yang secara default menggunakan protokol HTTP 1.0. Pengaturan default ini telah bertahan selama lebih dari satu dekade, dan diperkirakan NGINX tidak akan mengubahnya di masa depan.
Di era microservices, solusi cloud-native, dan ledakan informasi AI, para insinyur mencari perangkat lunak yang andal dan bebas masalah, memungkinkan mereka untuk mulai bekerja dengan lancar. Mereka juga menghargai konfigurasi default yang selaras dengan praktik terbaik produksi. Akibatnya, perangkat lunak open-source modern cenderung melepaskan beban sejarah dan fokus pada penyelesaian masalah secara efisien, dengan segala kelebihan dan kekurangannya.

