Apa itu Apache? Fitur dan Performa Apache

Apache Web Server

Apache Web Server adalah perangkat lunak server web yang sangat populer dan sering digunakan di seluruh dunia. Apache Web Server dikembangkan oleh Apache Software Foundation dan telah menjadi salah satu server web terkemuka dalam industri hosting web.

Apache Web Server dirancang untuk menjalankan situs web dan aplikasi web dengan menggunakan protokol HTTP (Hypertext Transfer Protocol) dan HTTPS (HTTP Secure). Sebagai server web, Apache bertanggung jawab untuk menerima permintaan dari klien (seperti browser web) dan mengirimkan halaman web yang diminta kembali kepada mereka.

Kelebihan Apache Web Server termasuk kehandalan, kinerja yang baik, dan skalabilitas yang tinggi. Apache dapat berjalan di berbagai sistem operasi, termasuk Linux, Windows, macOS, dan lainnya. Perangkat lunak ini juga mendukung banyak fitur dan modul yang dapat diaktifkan atau dinonaktifkan sesuai kebutuhan.

Dalam konfigurasi standar, Apache menggunakan file konfigurasi yang disebut "httpd.conf" untuk mengatur pengaturan server, seperti direktori root dari situs web, port yang digunakan, modul yang diaktifkan, dan banyak lagi. Pengguna juga dapat menyesuaikan konfigurasi server sesuai kebutuhan mereka.

Selain itu, Apache juga mendukung modul dan ekstensi tambahan yang memperluas fungsionalitasnya. Beberapa contoh modul populer termasuk modul mod_rewrite untuk mengatur aturan URL, modul mod_ssl untuk mendukung koneksi HTTPS, dan banyak lagi.

Dengan kombinasi keandalan, fleksibilitas, dan dukungan komunitas yang luas, Apache Web Server tetap menjadi salah satu pilihan utama untuk hosting situs web dan aplikasi web di seluruh dunia.

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