Baru-baru ini saya telah menyelesaikan satu situasi menggunakan path & path_beg di dalam haProxy. Sebuah laman web telah dibangunkan semula menggunakan platform yang berbeza dari yang sebelumnya. Atas sebab-sebab tertentu, terdapat fungsi pada platform lama yang masih perlu digunakan dalam keadaan URL (termasuk domain) mesti sama seperti yang asal.
Pada masa yang sama, platfom baru juga mempunyai laman web/domain yang lain. Ini juga bermaksud ia berkongsi web server. Kami ingin pointing ke path pada platfom lama hanya untuk web utama sahaja.
Berikut contoh untuk memudahkan kefahaman
- Web/domain utama - web.contoh (Domain sama pernah digunakan oleh platform yang lama)
- Secara lalai, kandungan pada platform baru yang akan dipaparkan
- Akses ke path tertentu sahaja yang menepati sekian nama atau bermula dengan sekian nama akan memaparkan laman pada platform lama
- Web/domain kedua - intranet.web.contoh
- Paparan berbeza walaupun berkongsi platform
- akses ke path sama seperti pada pada platform lama tidak akan paparkan laman milik platform lama. Mesej seperti "Halaman tidak ditemui" akan dipaparkan jika ianya tidak wujud
Berikut merupakan bentuk konfigurasi yang telahpun digunakan
frontend public
### Contoh. Bahagian ini mempunyai lain-lain konfigurasi
acl acl_web-host hdr(host) -i web.contoh www.web.contoh
acl acl_web-path path -i /contohpath
acl acl_web-pathbeg path_beg -i /contohpath1/ /contohpath2/
use_backend weblama if acl_web-host acl_web-path || acl_web-host acl_web-pathbeg
default_backend webbaru
### Contoh. Bahagian ini mempunyai lain-lain konfigurasi
backend webbaru
### Contoh. Bahagian ini mempunyai lain-lain konfigurasi
server server1 192.168.10.10:80 cookie WS1 check
server server2 192.168.10.11:80 cookie WS2 check
backend weblama
server server1 192.168.11.10:443 check ssl verify none
Keterangan mengenai konfigurasi
- Access Control List (ACL)
- hdr(host) - Nama Host/domain
- path - URL mengandungi nama path tepat seperti yang diisytiharkan
- path_beg - URL mengandungi nama path bermula dengan yang diisytiharkan
- Backend
- use_backend - Gunakan sesuatu backend jika menepati syarat yang ditetapkan. Kes disini, kita mahu backend 'weblama' jika menepati syarat domain utama dan path sama seperti pada platorm yang lama.
- default_backend - Backend yang akan digunakan oleh haProxy secara lalai
Moga perkongsian ini memberi manfaat. 🙂