Panduan Teknis Mod_Proxy Apache: Konfigurasi & Implementasi

Definisi dan Fungsi Mod_Proxy

Mod_proxy adalah modul Apache HTTP Server yang berfungsi sebagai gateway atau perantara (proxy) untuk permintaan HTTP/HTTPS. Modul ini memungkinkan Apache bertindak sebagai reverse proxy, di mana server menerima permintaan dari klien dan meneruskannya ke server backend (seperti aplikasi Node.js, Python, atau Java) sebelum mengembalikan respons ke klien. Penggunaan utama mod_proxy meliputi load balancing, enkapsulasi keamanan, dan penyatuan beberapa layanan di bawah satu domain.

Sintaks Dasar Konfigurasi

Untuk mengaktifkan mod_proxy, pastikan modul proxy dan proxy_http telah dimuat. Berikut adalah contoh konfigurasi dasar dalam file virtual host Apache untuk meneruskan trafik ke aplikasi lokal pada port 3000:

<VirtualHost *:80>
    ServerName domainanda.com
    ProxyPreserveHost On
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/
</VirtualHost>

Tabel Perbandingan Fitur Mod_Proxy

FiturDeskripsi
ProxyPassMeneruskan permintaan masuk ke server backend.
ProxyPassReverseMenyesuaikan header respons agar sesuai dengan URL publik.
ProxyPreserveHostMeneruskan header Host asli ke server backend.
BalancerMemberMenentukan node dalam konfigurasi load balancing.

Implementasi Load Balancing

Mod_proxy sangat efektif untuk mendistribusikan beban kerja ke beberapa server backend. Dengan menggunakan mod_proxy_balancer, Anda dapat memastikan ketersediaan layanan tetap terjaga jika salah satu server mengalami kegagalan.

<Proxy balancer://mycluster>
    BalancerMember http://10.0.0.1:3000
    BalancerMember http://10.0.0.2:3000
</Proxy>
ProxyPass / balancer://mycluster/

Langkah Troubleshooting

  1. Cek Status Modul: Pastikan modul aktif dengan perintah apachectl -M | grep proxy.
  2. Periksa Log: Jika terjadi error 502 (Bad Gateway), periksa file log di /var/log/apache2/error.log untuk memastikan server backend sedang berjalan.
  3. Izin Koneksi: Pastikan firewall (seperti UFW atau SELinux) mengizinkan koneksi antara Apache dan port backend yang dituju.
  4. Header Host: Selalu gunakan ProxyPreserveHost On jika aplikasi backend Anda bergantung pada header Host untuk routing internal.