1 votes

haproxy, longueur de capture et redirection

J'ai une instance haproxy qui redirige certaines requêtes 301 GET. Malheureusement, ces requêtes sont tronquées à 1024 octets.

Après de nombreuses lectures et expériences, je pense que le problème réside dans la longueur de ce qui est capturé par capture.req.uri qui est de 1024. Mais je n'ai pas réussi à augmenter ce nombre. Je suis tout à fait ouvert aux indications.

Voici les extraits les plus pertinents de ma 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

Merci de me faire part de vos suggestions.

1voto

Ankur Jha Points 11

Deux lignes pour la correspondance et la réécriture sont alors nécessaires.

Tout d'abord, une réécriture si la chaîne de requête est présente :

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 }

Ensuite, une réécriture si la chaîne de requête est absente :

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

Votre fichier de carte ne contiendra que des chemins d'accès.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X