所以基本上我在单个 ubuntu 服务器上分别在端口 5000 和 30000 上运行 2 个不同的应用程序。这两个应用程序都必须使用 haproxy 进行映射。我使用 acl path_beg 来使用虚构的路径名(别名)来访问这些应用程序,而不是使用它们各自的端口号。
我到目前为止已经尝试过
frontend http-in
mode http
bind *:80
bind *:443 ssl crt /etc/ssl/private/mydomain.pem
http-request redirect scheme https code 301 if !{ ssl_fc }
acl path-employeeList path_beg -i /ProcessDesigner
use_backend backend1 if path-employeeList
acl path-employeeListfinal path_beg -i /ProcessCore
use_backend backend2 if path-employeeListfinal
backend backend1
mode http
option httplog
option forwardfor
reqrep ^([^\ :]+)\ /ProcessDesigner/?(.*)$ \1\ /\2
server backend1 206.189.22.155:30000
backend backend2
mode http
option httplog
option forwardfor
reqrep ^([^\ :]+)\ /ProcessCore/?(.*)$ \1\ /\2
server backend2 206.189.22.155:5000
使用此配置我只能访问第一个应用程序https://206.189.22.155/ProcessDesigner,但当我尝试访问第二个应用程序时https://206.189.22.155/ProcessCore我得到一个没有任何输出的空白页。检查该页面并检查控制台显示“无法加载资源:服务器响应状态为 503(服务不可用)”。
答案1
我认为你不应该提出新问题。所以看看haproxy 重定向无法使用路径名工作?首先删除以下几行:
acl path-employeeListnew path_beg -i /
use_backend backend1 if path-employeeListnew