我有一台服务器在不同的端口上运行多个Web应用程序,没有任何根应用程序路径。我目前可以通过http://myServer:8001,http://myServer:8002等方式访问它们,我希望通过HaProxy以http://myServer/app1,http://myServer/app2等方式访问它们
我发现使用reqrep的多个链接,但我无法使其工作。这是我放弃之前的最后一次尝试:
frontend http-in
option forwardfor
bind *:80
acl is-app1 path_beg /app1
use_backend app1 if is-app1
acl is-app2 path_beg /app2
use_backend app2 if is-app2
backend app1
reqrep ^Location:\ /app1/?(.*) Location:\ /\1
rsprep ^Location:\ (.*) Location:\ /app1/\1
server localhost 127.0.0.1:8001
backend app2
reqrep ^Location:\ /app2/?(.*) Location:\ /\1
rsprep ^Location:\ (.*) Location:\ /app2/\1
server localhost 127.0.0.1:8002
从我看到的例子中,我预计这一行足够(不需要rsprep),但我无法使其工作。
reqrep ^([^\ :]*)\ /app1/?(.*) \1\ /\2
答案 0 :(得分:2)
尝试一下 - 您可能需要稍微修改一下以满足您的要求。
frontend http-in
bind *:80
mode http
option httplog
option dontlognull
option forwardfor
# if "/app1"
use_backend app1 if { path_beg /app1/ }
# if "/app2"
use_backend app2 if { path_beg /app2/ }
backend app1
reqrep ^([^\ :]*)\ /app1/(.*) \1\ /\2
option forwardfor
server localhost 127.0.0.1:8001
backend app2
reqrep ^([^\ :]*)\ /app2/(.*) \1\ /\2
option forwardfor
server localhost 127.0.0.1:8002