У меня есть экземпляр 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
Большое спасибо за любые предложения.
Затем требуются две строки для сопоставления и перезаписи.
Во-первых, перепишите, если строка запроса присутствует:
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 }
Ваш файл карты будет содержать только пути.