Menggunakan Apache sebagai Reverse Proxy pada Ubuntu Server

Reverse Proxy merupakan sebuah proxy server yang menerima permintaan HTTP(S) dan secara transparan mendistribusikannya ke satu atau beberapa server yang ada di belakangnya. Reverse Proxy ini sangat berguna karena sekarang ini banyak sekali aplikasi web modern yang memproses permintaan HTTP namun sever-server tersebut tidak diperbolehkan untuk diakses secara langsung oleh pengguna.

Selain agar tidak diakses secara langsung, cara ini juga berfungsi sebagai  pengatur beban yang masuk untuk server-server yang ada di belakangnya (load balancing).

Lalu kenapa Apache yang digunakan sebagai proxy server? Kenapa bukan Nginx? Karena untuk Nginx, saya sudah pernah menuliskannya secara tidak langsung DI SINI.

Langsung saja, tanpa berlama-lama lagi berikut ini cara menggunakan Apache sebagai reverse proxy di Ubuntu Server.

  1. Mengaktifkan beberapa modul Apche yang diperlukan
    Setelah melakukan instalasi Apache, kalian harus mengaktifkan beberapa modul yang tidak aktif secara otomatis untuk mendukung reverse proxy ini.
    Beberapa modul tersebut adalah:

    • mod_proxy, modul utama yang berfungsi untuk mengarahkan  koneksi. Modul ini membuat Apache bertindak sebagai gateway untuk server aplikasi di belakangnya.
    • mod_proxy_http, modul yang menambahkan dukungan  untuk mengarahkan koneksi http.
    • mod_proxy_balancer dan mod_lbmethod_byrequest, modul yang mendukung fitur load balancing untuk banyak server backend.
  2. Cara melakukan instalasi modul-modul tersebut adalah dengan menjalankan perintah:
    sudo a2enmod proxy
    sudo a2enmod proxy_http
    sudo a2enmod proxy_balancer
    sudo a2enmod proxy lbmethod_byrequest
    sudo service apache2 restart
    Mengaktifkan modul

    menjalankan ulang service apache
  3. Tahap berikutnya adalah langsung ke bagian konfigurasi. Isi konfigurasinya adalah sebagai berikut:
    <VirtualHost *:80>
    ProxyPreserveHost On
    ProxyRequests Off
    AllowEncodedSlashes NoDecode
    
    
    ServerName <Nama_Server>
    ServerAlias <nama_server>
    
    
    ErrorLog ${APACHE_LOG_DIR}/error-proxy.log
    CustomLog ${APACHE_LOG_DIR}/access-proxy.log combined
    
    Redirect permanent / https://<nama_server>
    </VirtualHost>
    
    <VirtualHost *:443>
    ServerName <nama_server>
    SSLEngine on
    SSLProxyEngine On
    ProxyRequests Off
    ProxyPreserveHost On
    
    SSLCertificateFile /<lokasi_cert>/<kunci_publik>.crt
    SSLCertificateKeyFile /<lokasi_key>/<kunci_privat>.key
    
    ErrorLog ${APACHE_LOG_DIR}/error-proxy-SSL.log
    CustomLog ${APACHE_LOG_DIR}/access-proxy-SSL.log combined
    
    ProxyPass / http://<ip_server>:<port>/
    ProxyPassReverse / http://<ip_server>:<port>/
    </VirtualHost>

    konfigurasinya

Itu tadi sedikit konfigurasi dasar  untuk membuat Apache Web Server menjadi sebuah reverse proxy server. Jangan lupa di-restart kembali Apache-nya ya setelah melakukan perubahan konfigurasi.

Jika ada yang tidak jelas atau dirasa salah, jangan ragu untuk menulis di kolom komentar ya.

Tambahan

Jika tidak menggunakan SSL, konfigurasinya menjadi seperti ini:

<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
AllowEncodedSlashes NoDecode


ServerName <Nama_Server>
ServerAlias <nama_server>


ErrorLog ${APACHE_LOG_DIR}/error-proxy.log
CustomLog ${APACHE_LOG_DIR}/access-proxy.log combined

ProxyPass / http://<ip_server>:<port>/
ProxyPassReverse / http://<ip_server>:<port>/
</VirtualHost>

Leave a Reply

Your email address will not be published. Required fields are marked *