fragen stichworte

Verhindern Sie, dass HAProxy HTTP an HTTPS umleitet

Ich verwende HAproxy, um Anforderungen für den Lastausgleich zwischen Apache-Servern zu laden. Ich versuche, HTTPS für einen speziellen Anwendungsfall (Serving von Kickstart-Dateien) zu deaktivieren, und verwende dazu Port 8000. Ich habe eine HAProxy-Konfiguration, die ungefähr so ​​aussieht (einige Konfigurationen wurden weggelassen):

frontend provision_frontend_b
        bind 10.1.1.1:8000
        mode http
        default_backend provision_backendb


backend provision_backendb
        mode http
        server server1 127.0.0.1:8000 weight 1
        server server2 10.1.1.2:8000 weight 1

Ich möchte, dass HAProxy die an die externe IP-Adresse von Port 8000 gerichteten Anforderungen an die Loopback-Adresse von Port 8000 umleitet, wo ich Apache empfange. Apache ist so konfiguriert, dass statische Dateien über HTTP bereitgestellt werden.

Wenn ich den Server von meinem Browser mit dem DNS-Namen des Frontends ausstößt: http://myhost.mydomain: 8000, werde ich zu HTTPS und einem SSL-Zertifikatfehler weitergeleitet. Wenn ich es mit der IP http://10.1.1.1:8000 versuche, funktioniert es (und leitet nicht auf HTTPS um).

Gibt es einen Grund, warum HAProxy dies tun würde? Es scheint nicht Apache zu sein, da ich HAProxy so konfiguriert habe, dass es zu anderen HTTP-only-Apache-Servern umgeleitet wird und diese Fehlermeldung trotzdem angezeigt wird.

Das einzige, was ich in der HAProxy-Konfiguration sehe, ist ein anderes Frontend, das für die Umleitung auf SSL konfiguriert ist:

frontend http_frontend
        bind :80
        mode http
        redirect scheme https if !{ ssl_fc }

Hört jedoch einen anderen Port. Ich habe versucht, die Weiterleitung zu kommentieren, und das Problem wurde nicht behoben.

antworten

Nein, es ist nicht Haproxy. Haproxy hat nichts mit Ihrer https-Umleitung zu tun. Offenbar wurde die myhost.mydomain in Ihrem Webbrowser für eine interne 307-Weiterleitung zwischengespeichert. Das sendet Ihren Traffic immer im https-Modus. Löschen Sie Ihren Cache und Cookies im Browser, Es sollte funktionieren. Ich bin nicht sicher, ob Sie etwas von der Serverseite tun konnten, ich habe einmal dieses Problem konfrontiert, ich habe versucht, umleiten, um http Schema, aber dann auf viele Weiterleitungen Fehler kam.