在 haproxy 中使用多个后端时无法实现 http 到 https 重定向?

在 haproxy 中使用多个后端时无法实现 http 到 https 重定向?

所以基本上我在单个 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

相关内容