Tengo HAProxy 1.5.8.
Tengo esta regla 301 básica:
frontend http_frontend
bind *:80
mode http
redirect location https://xxxx.com code 301
La respuesta se ve así:
HTTP/1.1 301 Moved Permanently
Content-length: 0
Location: https://xxxx.com
Connection: close
Necesito agregar una fecha en el encabezado, como lo haría un servidor web normal.
respaddLa función no parece afectar la redirección.
Es posible ?
Respuesta1
Es posible hacer esto, Willy de HaProxy identificó la solución aquí:
https://www.mail-archive.com/[correo electrónico protegido]/msg25061.html
http-request redirect location "https://blah..\r\nDate: xyz"
El problema que quería resolver era agregar un encabezado HSTS, pero supongo que podrías usarlo para una cita.
No es bonito, pero funciona y lo acabo de implementar. Para nosotros también queríamos representar un encabezado que identificara el cuadro que generaba la redirección, ya que tenemos varios cuadros de HaProxy.
Esto fue probado por mí en HaProxy 1.6, no puedo garantizar otras versiones.
Respuesta2
No es posible para ningún navegador que haya visto alguna vez la redirección. Se almacena en caché indefinidamente. Una redirección 301 solo debe usarse cuando se retira un sitio de forma permanente, e incluso entonces es una mala idea: se pierde visibilidad del tráfico que aún llega al sitio anterior.
Así que cámbialo a una redirección 302 antes de hacer cualquier otra cosa.
Haproxy no es un servidor web. No tiene medios para generar un encabezado que contenga datos dinámicos; si realmente desea un encabezado de fecha, use un servidor web. Hay varios ligeros capaces de realizar esta tarea.
Alternativamente, cuéntanos por quénecesidaddicho encabezado y podríamos aconsejarle sobre una solución más adecuada.
Respuesta3
Encontré en la discusión del problema de github que es posible desde Haproxy 2.2
https://stackoverflow.com/a/72830822/1849577
http-after-response set-header Cache-Control max-age=3600 if {condition}