Saya menggunakan Apache untuk mengalihkan subdomain ke port ( mod_proxy
, mod_proxy_http
, mod_proxy_ajp
) dan Tabel IP untuk membatasi akses port langsung kecuali untuk saya dan server lokal.
Tabel IP saya terlihat seperti ini:
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- !c-24-7-110-109.hsd1.ca.comcast.net anywhere tcp dpt:tproxy
ACCEPT tcp -- localhost anywhere tcp dpt:tproxy
DROP tcp -- !c-24-7-110-109.hsd1.ca.comcast.net anywhere tcp dpt:http-alt
DROP tcp -- !c-24-7-110-109.hsd1.ca.comcast.net anywhere tcp dpt:webmin
ACCEPT tcp -- localhost anywhere tcp dpt:webmin
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Konteks yang akan saya gunakan dalam posting ini adalah:
Nexus Sonatype: nexus.example.com => example.com:8081
Jenkins CI: jenkins.example.com => example.com:8080
Webmin: webmin.example.com => example.com:10000
Apa yang saya miliki saat ini adalah tidak ada akses port langsung kecuali saya. Saya juga ingin sistem lokal dapat mengakses port yang, saya yakin, saya miliki sekarang. saya menggunakan mod_proxy_ajp
untuk Jenkins CI dan Webmin dan mod_proxy_http
untuk Sonatype Nexus.
Ketika saya mengunjungi port langsung, masing-masing layanan ini memuat dengan baik. Ketika saya meminta orang lain untuk memuat masing-masing, mereka tidak bisa, jadi itu berhasil.
Namun sekarang, ketika mencoba mengakses salah satu subdomain, dapatkan saya mendapatkan beban yang tidak pernah berakhir (infinite loop?)
Ketika saya menjalankan tracert pada subdomain, itu berakhir dengan baik sehingga saya bisa mencoret infinite loop.
Ini adalah konfigurasi host virtual Sonatype Nexus apache saya:
<VirtualHost *:80>
ServerName nexus.majornoob.com
ServerAlias www.nexus.majornoob.com
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:8081/
ProxyPassReverse / http://localhost:8081/
ProxyPassReverseCookiePath / /
ErrorLog /var/www/majornoob/error-nexus.log
LogLevel warn
CustomLog /var/www/majornoob/access-nexus.log combined
</VirtualHost>
dan inilah Jenkins saya:
<VirtualHost *:80>
ServerName jenkins.majornoob.com
ServerAlias www.jenkins.majornoob.com
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / ajp://127.0.0.1:8080/
ProxyPassReverse / ajp://127.0.0.1:8080/
ProxyPassReverseCookiePath / /
ErrorLog /var/www/majornoob/error-jenkins.log
LogLevel warn
CustomLog /var/www/majornoob/access-jenkins.log combined
</VirtualHost>
Dua contoh host virtual ini gunakan mod_proxy_ajp
dan mod_proxy_http
masing-masing.
Adakah yang bisa membantu saya mencari tahu mengapa saya mendapatkan beban yang tak terbatas?
Terima kasih.
edit: Nevermind pada infinite loop. Setelah beberapa waktu, saya menerima kesalahan 503 Layanan Tidak Tersedia.