Mit HAProxy versuche ich, eine Site zu proxyen, deren URL nicht mit dem Pfad des geproxieden Zielservers übereinstimmt. Momentan kann ich reqrep
den Pfad bearbeiten und in meinem Browser rufe ich die Datei index.html ab, allerdings werden keine der unterstützenden Dateien (.css, .js usw.) geladen, obwohl sie als Referenz aufgeführt sind.
Zum Beispiel www.mysite.com/maps --haproxy--> www.backend-server.com. In meiner Konfiguration entferne ich /maps, sodass wir am Stammverzeichnis des Webservers www.backend-server.com landen und index.html abrufen können. Wenn nun aber versucht wird, .css und .js zu laden, können sie das nicht, da sie verweisen, www.mysite.com/icons/text.gif
obwohl sie meiner Meinung nach verweisen sollten www.mysite.com/maps/icons/text.gif
. Außerdem kann ich nicht einfach eine Regel erstellen, die besagt, dass .css und .js zu einem Backend gehen, da ich verschiedene Apps habe, die alle dieses Problem haben und ihre .js- und .css-Dateien von unterschiedlichen Orten abrufen. Wie mache ich das richtig? Hier ist meine Konfiguration:
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