【发布时间】:2017-10-06 21:05:08
【问题描述】:
我一直在搜索互联网的深度,试图让 HAProxy 正常运行,但我不确定它能否完成我想要的。
我试着按照这个:https://www.haproxy.com/blog/howto-write-apache-proxypass-rules-in-haproxy/
这是我的场景:我有一个在端口 8999 上运行 app1 的 VM。当我转到 https://PUBLIC-IP-ADDRESS/app1 时,HAProxy 应该会在 http://backend-ip:8999/ 启动 app1 的根目录。
我面临的问题是我可以让 HAProxy 代理初始连接,但所有后续请求都转到默认后端服务器的根目录。
frontend www-https
bind *:8989 ssl crt /ssl/server.pem
log global
option httplog
reqadd X-Forwarded-Proto:\ https
rspadd Strict-Transport-Security:\ max-age=31536000;\ includeSubDomains
acl app1 path_beg -i /app1 /app1/
use_backend www-app1 if app1
default_backend www-backend
backend app1
option http-server-close
option forwardfor
reqirep [\:])\ /app1/(.) \1\ /\2
acl hdr_location res.hdr(Location) -m found
rspirep Location:\ (https?://Public-IP-ADDRESS(:[0-9]+)?)?(/.*) Location:\ /app1\3 if hdr_location
server app1 bk.IP-ADDRESS:8999 check
现在可以转到/app1/,但所有链接都指向/。所以点击任何地方都会让我回到https://PUBLIC-IP-ADDRESS。
非常感谢任何帮助。
【问题讨论】: