Header in HAProxy-Umleitungsfunktion einfügen

Header in HAProxy-Umleitungsfunktion einfügen

Ich habe HAProxy 1.5.8.

Ich habe diese grundlegende 301-Regel:

frontend http_frontend
  bind *:80
  mode http
  redirect location https://xxxx.com code 301

Die Antwort sieht folgendermaßen aus:

HTTP/1.1 301 Moved Permanently
Content-length: 0
Location: https://xxxx.com
Connection: close

Ich muss ein Datum in die Kopfzeile einfügen, wie es ein normaler Webserver tun würde.

AbonnierenDie Funktion scheint die Weiterleitung nicht zu beeinflussen.

Ist es möglich ?

Antwort1

Dies ist möglich. Willy von HaProxy hat hier die Lösung gefunden:

https://www.mail-archive.com/[email geschützt]/msg25061.html

http-request redirect location "https://blah..\r\nDate: xyz"

Das Problem, das ich lösen wollte, war das Hinzufügen eines HSTS-Headers, aber ich schätze, Sie könnten ihn für ein Datum verwenden.

Es ist nicht schön, aber es funktioniert, und ich habe es gerade implementiert. Für uns wollten wir auch einen Header rendern, der die Box identifiziert, die die Weiterleitung generiert, da wir mehrere HaProxy-Boxen haben.

Dies wurde von mir in HaProxy 1.6 getestet, ich kann nicht für andere Versionen bürgen.

Antwort2

Dies ist für keinen Browser möglich, der die Umleitung jemals gesehen hat. Sie wird auf unbestimmte Zeit zwischengespeichert. Eine 301-Umleitung sollte nur verwendet werden, wenn Sie eine Site dauerhaft außer Betrieb nehmen, und selbst dann ist es keine gute Idee – Sie verlieren die Übersicht über den Datenverkehr, der noch auf die alte Site trifft.

Ändern Sie es also in eine 302-Weiterleitung, bevor Sie irgendetwas anderes tun.

Haproxy ist kein Webserver. Es hat keine Möglichkeit, einen Header mit dynamischen Daten zu generieren. Wenn Sie wirklich einen Datumsheader möchten, verwenden Sie einen Webserver. Es gibt mehrere leichte Server, die diese Aufgabe bewältigen können.

Oder teilen Sie uns mit, warum Siebraucheneinen solchen Header und wir können Ihnen möglicherweise eine passendere Lösung empfehlen.

Antwort3

Ich habe in der GitHub-Diskussion herausgefunden, dass es seit Haproxy 2.2 möglich ist

https://stackoverflow.com/a/72830822/1849577

http-after-response set-header Cache-Control max-age=3600 if {condition}

verwandte Informationen