Назад | Перейти на главную страницу

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

Большое спасибо за любые предложения.

Затем требуются две строки для сопоставления и перезаписи.

Во-первых, перепишите, если строка запроса присутствует:

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 }

Ваш файл карты будет содержать только пути.