Eu tenho HAProxy 1.5.8.
Eu tenho esta regra 301 básica:
frontend http_frontend
bind *:80
mode http
redirect location https://xxxx.com code 301
A resposta é assim:
HTTP/1.1 301 Moved Permanently
Content-length: 0
Location: https://xxxx.com
Connection: close
Preciso adicionar uma data no cabeçalho, como faria um servidor web normal.
respaddA função não parece afetar o redirecionamento.
É possível ?
Responder1
É possível fazer isso, Willy da HaProxy identificou a solução aqui:
https://www.mail-archive.com/[e-mail protegido]/msg25061.html
http-request redirect location "https://blah..\r\nDate: xyz"
O problema que eu queria resolver era adicionar um cabeçalho HSTS, mas acho que você poderia usá-lo para um encontro.
Não é bonito, mas funciona, e acabei de implementá-lo, para nós também queríamos renderizar um cabeçalho identificando a caixa que estava gerando o redirecionamento, pois temos várias caixas HaProxy.
Isso foi testado por mim no HaProxy 1.6, não posso garantir outras versões.
Responder2
Não é possível para nenhum navegador que já tenha visto o redirecionamento. Ele é armazenado em cache indefinidamente. Um redirecionamento 301 só deve ser usado quando você estiver desativando um site permanentemente e, mesmo assim, é uma má ideia - você perde a visibilidade do tráfego que ainda atinge o site antigo.
Portanto, mude para um redirecionamento 302 antes de fazer qualquer outra coisa.
Haproxy não é um servidor web. Não há como gerar um cabeçalho que contenha dados dinâmicos - se você realmente deseja um cabeçalho de data, use um servidor web. Existem vários leves capazes dessa tarefa.
Alternativamente, diga-nos por que vocêprecisartal cabeçalho e poderemos aconselhar sobre uma solução mais adequada.
Responder3
Descobri na discussão do problema do github que é possível desde o Haproxy 2.2
https://stackoverflow.com/a/72830822/1849577
http-after-response set-header Cache-Control max-age=3600 if {condition}