Redirect HAProxy-添加尾部斜杠

Redirect HAProxy-添加尾部斜杠,redirect,web,haproxy,Redirect,Web,Haproxy,我正在从事一个项目,在这个项目中,我需要将发送到特定页面的请求路由到单独的后端 例如,对的所有请求都将转到后端“A”。但是,如果导航到,我希望它转到后端“B” 现在,我有这个工作,但遇到一个问题,我需要尾部斜杠,这是正确的工作 所以,我需要一种方法来说明请求是否重定向到 以下是迄今为止我的配置示例: frontend f_https bind *:443 ssl crt cert.pem reqadd X-Forwarded-Proto:\ https #define

我正在从事一个项目,在这个项目中,我需要将发送到特定页面的请求路由到单独的后端

例如,对的所有请求都将转到后端“A”。但是,如果导航到,我希望它转到后端“B”

现在,我有这个工作,但遇到一个问题,我需要尾部斜杠,这是正确的工作

所以,我需要一种方法来说明请求是否重定向到

以下是迄今为止我的配置示例:

frontend f_https
    bind *:443 ssl crt cert.pem
    reqadd X-Forwarded-Proto:\ https

    #define hosts
    acl host_a hdr(host) -i a.mycooldomain.com
    acl host_b hdr(host) -i b.mycooldomain.com
    acl host_c hdr(host) -i c.mycooldomain.com

    #custom acls
    acl secret path_beg -i /secretpage

    #Custom redirects

    ##define backend
    use_backend b_secret if secret
    use_backend b_a if host_a
    use_backend b_b if host_b
    use_backend b_c if host_c

    default_backend b_https

backend b_secret
    server secret 192.168.15.15:5575 check

你似乎在寻找这样的东西:

http-request redirect scheme https drop-query append-slash if { path -m str /secretpage }
http-request set-header X-Forwarded-Proto https
如果将其应用于前端或后端,则应能正常工作

只需要指定方案,因为语法需要
location | prefix | scheme
中的一个,使用其他两个选项,您必须自己在配置中重新组合URL


还要注意的是,
reqadd
并不是官方反对的,但是添加该请求头的首选方法如下:

http-request redirect scheme https drop-query append-slash if { path -m str /secretpage }
http-request set-header X-Forwarded-Proto https

请注意,未指定任何
,标题名称后的空格不能用
\
转义。这实现了相同的结果,但它在HAProxy中使用了不同的代码路径,应该是一种更高效的操作。您可能希望使用
http请求
http响应
指令,而不是
reqxxx
rspxxx
,因为它们也更适合于更复杂的操作。

这非常有效!非常感谢您对文档的详细回复和参考。我正在接近,但还没有尝试过这种方法。