我正在嘗試使用 HAProxy 代理一個 URL 與代理目標伺服器的路徑不匹配的網站。現在我可以用來reqrep
編輯路徑,並且在瀏覽器中我最終獲取了index.html,但是它不會加載任何支援文件(.css、.js ext),即使它們是透過引用列出的。
例如 www.mysite.com/maps --haproxy--> www.backend-server.com。在我的配置中,我刪除了/maps,因此我們最終到達www.backend-server.com 的Web 伺服器根目錄,並且能夠取得index.html,但現在當.css 和.js 嘗試載入時,它們無法作為www.mysite.com/icons/text.gif
當我猜測他們應該引用時,他們www.mysite.com/maps/icons/text.gif
。另外,我不能只是製定一條規則說 .css 和 .js 轉到某個後端,因為我有不同的應用程序,它們都有這個問題,並從不同的地方提取它們的 .js 和 .css 文件。我該如何以正確的方式做到這一點?這是我的配置:
defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
frontend dev
bind xxx.xx.x.30:80
option forwardfor except 127.0.0.0/8
#Routing based on Web App
acl filebrowser url_beg /maps
use_backend dev.maps if maps
backend dev.maps
option httpclose
option forwardfor
reqrep ^([^\ ]*\ /)maps[/]?(.*) \1\2
server maps maps.backend-server.com:80 check