haproxy、捕获长度和重定向

haproxy、捕获长度和重定向

我有一个 haproxy 实例,用于重定向某些 301 GET 请求。不幸的是,这些请求在 1024 字节处被截断。

经过大量阅读和实验,我相信问题在于捕获的长度capture.req.uri,即 1024。但我无法成功增加该数字。我对指针持开放态度。

以下是我的最相关的片段haproxy.cfg

global
    tune.bufsize 131072
        tune.maxrewrite 65536

defaults

frontend www-https
    bind 1.2.3.4:443 ssl crt /etc/haproxy/ssl/

    declare capture request len 16382
    declare capture response len 16382
    http-request capture capture.req.uri len 16382

    acl redirect_canonical ssl_fc_sni -i myname.example.com
    http-request  redirect  code 301  location  https://www.example.com%[capture.req.uri]  if\
 redirect_canonical

非常感谢您的任何建议。

答案1

然后需要两行用于匹配和重写。

首先,如果查询字符串存在,则重写:

http-request redirect location %[path,map(/etc/haproxy/redirects.map)]?%[query] code 301 if { path,map(/etc/haproxy/redirects.map) -m found } { query -m found }

然后,如果查询字符串不存在,则重写:

http-request redirect location %[path,map(/etc/haproxy/redirects.map)] code 301 if { path,map(/etc/haproxy/redirects.map) -m found } ! { query -m found }

您的地图文件仅是路径。

相关内容