使用相同的绑定端口时,haproxy 重定向不起作用?

使用相同的绑定端口时,haproxy 重定向不起作用?

当前有 3 个应用程序在各自的端口(5000、30000 和
32000)上运行。所有这些应用程序都在各自的端口上运行。现在我想在 haproxy 的帮助下使用别名映射这 3 个应用程序。

我已尝试过


frontend frontend1
    mode    http
    bind *:8080
    bind *:443 ssl crt /etc/ssl/private/mydomain.pem
    http-request redirect scheme https code 301 if !{ ssl_fc }


    acl path-processdesigner              path_beg -i /
    use_backend backend3               if path-processdesigner
    acl path-processdesigner              path_beg -i /processdesigner
    use_backend backend3               if path-processdesigner

frontend frontend2
    mode    http
    bind *:8000
    bind *:443 ssl crt /etc/ssl/private/mydomain.pem
    http-request redirect scheme https code 301 if !{ ssl_fc }

    acl path-processcore                  path_beg -i /
    use_backend backend2               if path-processcore
    acl path-processcore              path_beg -i /processcore
    use_backend backend2               if path-processcore

frontend frontend3
    mode    http

    bind *:80

    acl path-employeeList                 path_beg -i /index
    use_backend backend1               if path-employeeList


backend backend1
    mode    http

    option  httplog
    option  forwardfor
    reqrep  ^([^\ :]+)\ /index/?(.*)$  \1\ /\2

    server  backend1  206.189.22.155:32000


backend backend2
    mode    http

    option  httplog
    option  forwardfor
    reqrep  ^([^\ :]+)\ /processcore/?(.*)$  \1\ /\2

    server  backend2 206.189.22.155:5000

backend backend3
    mode    http

    option  httplog
    option  forwardfor
    reqrep  ^([^\ :]+)\ /processdesigner/?(.*)$  \1\ /\2

    server  backend2 206.189.22.155:30000


使用此配置我可以访问https://206.189.22.155/processdesignerhttp://206.189.22.155/index但是当我打https://206.189.22.155/processcore我得到 404 not found。现在,如果我从配置中完全删除前端 frontend1,那么https://206.189.22.155/processcore可以工作并显示输出。为什么只有当我完全删除 frontend1 时它才可以工作?我该如何修复这个问题?请帮忙

注意:所有应用程序都在各自的端口上运行,即http://206.189.22.155:5000/,http://206.189.22.155:32000/http://206.189.22.155:30000/

答案1

您有两个前端在同一个端口 443 上监听,但只有第一个前端会匹配端口 443 上的所有请求。

相关内容