所以基本上我有2个不同的应用程序分别在单个ubuntu服务器上的端口5000和30000上运行。这两个应用程序都必须使用haproxy进行映射。
到目前为止我尝试过的是什么
到目前为止我尝试过的是什么
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
现在,/ ProcessDesigner和/ ProcessCore只是别名/虚构名称。当前https://206.189.22.155/ProcessDesigner仅显示部分输出(我表示该页面的某些部分由于503错误服务不可用而无法加载),而https://206.189.22.155/ProcessCore上的第二个应用程序也未显示任何输出。屏幕)。
注意:如果我将以下提到的行添加到我的前端
acl path-employeeListnew path_beg -i /
use_backend backend1 if path-employeeListnew
然后在这种情况下,https://206.189.22.155/ProcessDesigner上的应用程序可以正常工作,并且可以看到完整的输出。但是此修复程序不是正确的修复程序,因为现在如果我按https://206.189.22.155/ProcessCore,则会出现404 not found错误。 https://206.189.22.155/ProcessCore起作用的唯一情况是我使用以下配置-
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-employeeListnew path_beg -i /
use_backend backend2 if path-employeeListnew
acl path-employeeListfinal path_beg -i /ProcessCore
use_backend backend2 if path-employeeListfinal
backend backend2
mode http
option httplog
option forwardfor
reqrep ^([^\ :]+)\ /ProcessCore/?(.*)$ \1\ /\2
server backend2 206.189.22.155:5000
因此,在任何给定时间,我只能映射一个应用程序,而不能映射多个应用程序。 Plz可以提供帮助,因为我不认为应用程序内部有任何更改,而我认为haproxy配置有问题。