Используя HAProxy, я пытаюсь проксировать сайт, URL которого не соответствует пути проксируемого целевого сервера. Сейчас я могу использовать reqrep
для редактирования пути, и в моем браузере я получаю index.html, однако он не загружает ни один из своих вспомогательных файлов (.css, .js ext), хотя они перечислены по ссылке.
Например, www.mysite.com/maps --haproxy--> www.backend-server.com. В своей конфигурации я удаляю /maps, поэтому мы оказываемся в корне веб-сервера www.backend-server.com и можем получить index.html, но теперь, когда .css и .js пытаются загрузиться, они не могут, поскольку ссылаются, www.mysite.com/icons/text.gif
когда, как я предполагаю, они должны ссылаться www.mysite.com/maps/icons/text.gif
. Также я не могу просто создать правило, говорящее .css и .js goto somebackend, потому что у меня есть разные приложения, у всех из которых есть эта проблема, и они извлекают свои файлы .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