Implementasi Apache sebagai Reverse Proxy Jenkins Pada Sistem FreeBSD

· 2 min read

Proksi terbalik atau Reverse Proxy adalah jenis server proksi yang menerima permintaan HTTP/HTTPS dan mendistribusikannya secara transparan ke satu at

Jika anda menjalankan Jenkins di lingkungan Unix, Anda mungkin ingin menyembunyikannya di balik server HTTP Apache untuk menyelaraskan URL server dan menyederhanakan pemeliharaan dan akses. Dengan cara ini, pengguna dapat mengakses server Jenkins menggunakan URL proxy dari apache. Salah satu cara untuk melakukannya adalah dengan menggunakan modul Apache mod_proxy dan mod_proxy_ajp. Modul-modul ini memungkinkan Anda menggunakan proxying di server Apache.

Proksi terbalik atau Reverse Proxy adalah jenis server proksi yang menerima permintaan HTTP/HTTPS dan mendistribusikannya secara transparan ke satu atau beberapa server backend. Proksi terbalik berguna karena banyak aplikasi web modern menangani permintaan HTTP/HTTPS yang masuk menggunakan server aplikasi backend yang tidak perlu dapat diakses langsung oleh pengguna dan sering kali hanya mendukung fungsionalitas HTTP dasar.

Dalam penggunaannya, kita dapat menggunakan proksi terbalik untuk mencegah akses langsung ke server aplikasi utama. Proksi terbalik juga dapat digunakan untuk menyeimbangkan permintaan masuk di berbagai server aplikasi, meningkatkan kinerja dalam skala besar, dan menyediakan toleransi kesalahan. Proksi terbalik akan mengisi kekosongan ini dengan fitur server aplikasi yang tidak disediakannya, seperti caching, kompresi, dan enkripsi SSL.

Artikel ini akan menjelaskan cara menyiapkan Apache sebagai server proksi terbalik utama menggunakan ekstensi mod_proxy untuk mengalihkan koneksi masuk ke satu atau beberapa server internal yang berjalan di jaringan yang sama.


Implementasi Web Server Apache sebagai Reverse Proxy Pada Sistem FreeBSD

Schema Reverse Proxy
Apache24 dengan Jenkin



System Specifications

OS: FreeBSD 13.2
IP Server: 192.168.5.2
Domain: unixwinbsd.site
Apache version: Apache24
IP Jenkin: 192.168.5.2
Port Jenkin: 8180
IP Apache: 192.168.5.2
Ports Reverse Proxy Apache: 8080


Aktifkan mod proxy Apache24

Agar Apache24 dapat digunakan sebagai server proxy terbalik, modul proxy di Apache24 harus diaktifkan terlebih dahulu. Untuk melakukannya, edit file /usr/local/etc/apache24/httpd.conf dan hapus tanda "#" di skrip loadmodule, seperti pada contoh di bawah ini:

Mengaktifkan mod proxy di httpd.conf
root@ns1:~ # ee /usr/local/etc/apache24/httpd.conf
LoadModule proxy_module libexec/apache24/mod_proxy.so
LoadModule proxy_http_module libexec/apache24/mod_proxy_http.so
LoadModule proxy_connect_module libexec/apache24/mod_proxy_connect.so
LoadModule proxy_ftp_module libexec/apache24/mod_proxy_ftp.so
Sejauh ini, kita belum banyak membahas tentang mod_proxy. Namun, sebenarnya mod_proxy sedikit lebih rumit dari itu. Sesuai dengan arsitektur modular Apache, mod_proxy sendiri bersifat modular, dan server proxy pada umumnya perlu mengaktifkan beberapa modul. Modul-modul yang relevan dengan proxy dan artikel ini meliputi:
  • mod_proxy: Modul inti menangani infrastruktur dan konfigurasi proxy serta mengelola permintaan proxy.
  • mod_proxy_http: Menangani pengambilan dokumen dengan HTTP dan HTTPS.
  • mod_proxy_ftp: Menangani pengambilan dokumen dengan FTP.
  • mod_proxy_connect: Menangani metode CONNECT untuk tunneling aman (SSL).
  • mod_proxy_ajp: Menangani protokol AJP untuk Tomcat dan server backend serupa.
  • mod_proxy_balancer: Menerapkan pengelompokan dan penyeimbangan beban di beberapa backend.
  • mod_cache, mod_disk_cache, mod_mem_cache: Mod ini menangani manajemen cache dokumen. Untuk mengaktifkan caching, diperlukan mod_cache dan satu atau keduanya disk_cache dan mem_cache.
  • mod_proxy_html: Mod ini akan menulis ulang tautan HTML ke dalam ruang alamat proxy.
  • mod_headers: Akan mengubah header permintaan dan respons HTTP.
  • mod_deflate: Menegosiasikan kompresi dengan klien dan backend.

Ganti Port Default Apache

Karena Apache berjalan pada port 80, proxy terbalik juga harus berada di port 8080, ganti port apache24 dalam file /usr/local/etc/apache24/httpd.conf.

Ganti port apache ke 8080
root@ns1:~ # ee /usr/local/etc/apache24/httpd.conf
Listen 192.168.5.2:8080
ServerName www.unixwinbsd.site:8080
Sekarang, mari kita konfigurasikan vhost HTTP default yang akan menerima semua permintaan proxy. Buka file httpd-vhosts.conf dan edit. Dalam artikel ini kita akan menjadikan Jenkins sebagai proxy "Backend" untuk apache24.

Kami sarankan, sebelum melanjutkan artikel ini sebaiknya anda membaca juga artikel lainnya "Cara Konfigurasi Jenkins Continuous Integration di FreeBSD" yang berhubungan dengan Konfigurasi Jenkins di FreeBSD.

Setelah kita mengonfigurasi Jenkins, kita mendapatkan ID Jenkins: iwanse1212. Masukkan skrip di bawah ini dalam file /usr/local/etc/apache24/extra/httpd-vhosts.conf.

Konfigurasi virtual host apache
root@ns1:~ # ee /usr/local/etc/apache24/extra/httpd-vhosts.conf
<Virtualhost 192.168.5.2:8080>
    ServerName        iwanse1212
    ProxyRequests     Off
    ProxyPreserveHost On
    AllowEncodedSlashes NoDecode
 
    <Proxy http://192.168.5.2:8180/*>
      Order deny,allow
      Allow from all
    </Proxy>
 
    ProxyPass         /  http://192.168.5.2:8180/ nocanon
    ProxyPassReverse  /  http://192.168.5.2:8180/
    ProxyPassReverse  /  http://iwanse1212/
</Virtualhost>
Pada skrip di atas, jelas bahwa kita akan menjalankan apache24 reverse proxy dengan IP privat 192.168.5.2 dengan port 8080. Sementara nama server "iwanse1212" adalah ID pengguna Jenkins. Setelah itu, kita restart server web apache, sehingga dapat memuat proxy Jenkins.

Restart apache24
root@ns1:~ # service apache24 restart
Performing sanity check on apache24 configuration:
Syntax OK
Stopping apache24.
Waiting for PIDS: 74121.
Performing sanity check on apache24 configuration:
Syntax OK
Starting apache24.
Setelah itu, kita uji dengan membuka web browser Yandex atau Google Chrome, ketik "http://192.168.5.2:8080" di menu address bar browser. Lihat hasilnya di layar Google Chrome Anda.

Saya yakin, informasi pada artikel di atas akan berguna bagi anda. Namun, ada ratusan orang kreatif lain yang mungkin juga akan membutuhkan informasi lainnya utnuk melengkapi pegnetahuannya tentang server Apache dan Jenkins.
Subscribe on LinkedIn Implementasi Apache sebagai Reverse Proxy Jenkins Pada Sistem FreeBSD

Enclosures Link: Implementasi Apache sebagai Reverse Proxy Jenkins Pada Sistem FreeBSD

Silahkan Berkomentar, Kakak...! Bunda...!

Posting Komentar