Apa itu Apache? Fitur dan Performa Apache
Apa itu Apache? Web Server Apache, biasa disebut Apache adalah web server open source yang dikembangkan dan dikelola oleh komunitas developer open source di bawah naungan Apache Software Foundation. Mayoritas Apache HTTP Server berjalan pada distribusi Linux, tetapi versi saat ini juga berjalan pada Microsoft Windows, OpenVMS, dan berbagai macam sistem mirip Unix.
Awalnya Apache berdasarkan pada server NCSA HTTPd, pengembangan Apache dimulai pada awal 1995 setelah pengembangan NCSA HTTPd terhenti. Apache memainkan peran kunci dalam pertumbuhan awal World Wide Web (WWW), dengan cepat menyalip NCSA HTTPd sebagai server HTTP yang dominan.
Pada tahun 2009 menjadi software web server pertama yang melayani lebih dari 100 juta situs web. Pada Januari 2021, Netcraft memperkirakan bahwa Apache melayani 24,63% dari sejuta situs web tersibuk, sementara Nginx melayani 23,21%, dan Microsoft berada di tempat ketiga dengan 6,85%. Sementara menurut W3Techs, Apache berada di peringkat pertama di 35.0%, Nginx kedua di 33.0%, dan Cloudflare Server ketiga di 17.3%.
Fitur Apache
Apache mendukung berbagai macam fitur, banyak yang diimplementasikan sebagai modul yang memperluas fungsionalitas inti. Misal dari skema otentikasi hingga mendukung bahasa pemrograman server lain seperti Perl, Python, Tcl dan PHP. Metode kompresi yang populer di Apache, mod_gzip, diimplementasikan untuk membantu mengurangi ukuran (bobot) halaman web yang disajikan melalui HTTP.
Virtual hosting memungkinkan satu instalasi Apache untuk melayani banyak situs web yang berbeda. Misalnya, satu komputer dengan satu instalasi Apache dapat secara bersamaan melayani example.com, example.org, example.edu, dll.
Apache memiliki fitur Error Message yang dapat dikonfigurasi, otentikasi database berbasis DBMS, Content Negotiation, tersedia beberapa antarmuka pengguna grafis (GUI), mendukung otentikasi kata sandi, serta otentikasi sertifikat digital.
Beberapa fitur Apache lainnya:
- Pemuatan modul dinamis
- Beberapa mode MPM. Event-based/Async, Threaded dan Prefork.
- Sangat skalabel (dengan mudah menangani lebih dari 10.000 koneksi simultan)
- Penanganan file statis, file indeks, pengindeksan otomatis, dan content negotiation
- .htaccess dukungan konfigurasi per direktori
- Reverse proxy dengan caching
- Load balancing
- Berbagai mekanisme load balancing
- Fault tolerance dan Failover dengan pemulihan otomatis
- Dukungan WebSocket, FastCGI, SCGI, AJP dan uWSGI dengan caching
- Konfigurasi dinamis
- TLS / SSL dengan dukungan stapel SNI dan OCSP, melalui OpenSSL atau wolfSSL.
- Server virtual berbasis nama dan alamat IP
- Kompatibel dengan IPv6
- Dukungan HTTP/2
Performa Apache
Dari segi performa, alih-alih menerapkan arsitektur tunggal, Apache menyediakan berbagai MultiProcessing Modules (MPMs), yang memungkinkannya berjalan baik dalam mode berbasis proses, mode hibrid (process and thread) dan mode event untuk bisa menyesuaikan dengan kebutuhan infrastruktur tertentu.
Oleh karena itu, pemilihan MPM dan konfigurasi menjadi sangat penting. Di mana kompromi dalam kinerja harus dilakukan, Apache dirancang untuk mengurangi latensi dan meningkatkan throughput supaya bisa menangani lebih banyak permintaan, sehingga memerlukan pemrosesan permintaan yang konsisten dan dapat diandalkan dalam kerangka waktu yang wajar.
Untuk mengirimkan halaman statis, seri Apache 2.2 dianggap jauh lebih lambat daripada nginx dan varnish. Untuk mengatasi masalah ini, pengembang Apache membuat MPM Event, yang menggabungkan penggunaan beberapa proses dan beberapa thread per proses dalam loop berbasis peristiwa asinkron. Arsitektur ini diterapkan di seri Apache 2.4, untuk perfoma, menurut Jim Jagielski dan beberapa sumber independen, setidaknya sudah sejajar dengan web server berbasis event lainnya.
Referensi: https://en.wikipedia.org/wiki/Apache_HTTP_Server