HAProxy 代理非真实路径

HAProxy 代理非真实路径

我尝试使用 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

相关内容