私はHAproxyを使用してApacheサーバー間でリクエストの負荷を分散しています。特別なユースケース(キックスタートファイルの提供)のためにHTTPSを無効にしようとしていますが、これを行うためにポート8000を使用しています。おおよそ次のようなHAProxy構成があります(一部の構成は省略されています)。
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
HAProxyが、ポート8000の外部IPに対して行われた要求を、Apacheがリッスンしているポート8000のループバックアドレスにリダイレクトするようにします。 Apacheは、HTTPを介して静的ファイルを提供するように構成されています。
不思議なことに、フロントエンドのDNS名を使用してブラウザからサーバーにアクセスすると: http://myhost.mydomain:80 、HTTPSにリダイレクトされ、SSL証明書エラーが発生します。 IPを試してみると http://10.1.1.1:80 、動作します(HTTPSにリダイレクトされません)。
HAProxyがこれを行う理由はありますか?他のHTTPのみのApacheサーバーにリダイレクトするようにHAProxyを構成したのに、このエラーが発生するため、Apacheではないようです。
HAProxy構成に表示されるのは、SSLにリダイレクトするように構成された別のフロントエンドだけです。
frontend http_frontend
bind :80
mode http
redirect scheme https if !{ ssl_fc }
ただし、別のポートでリッスンしています。リダイレクトをコメントアウトしようとしましたが、問題は解決しませんでした。
いいえ、Haproxyではありません。 Haproxyはhttpsリダイレクトとは何の関係もありません。 myhost.mydomainが内部307リダイレクトのためにWebブラウザにキャッシュされたようです。これは常にhttpsモードでトラフィックを送信します。ブラウザでキャッシュとCookieをクリアします。動作するはずです。サーバー側から何かできるかどうかわかりません。一度この問題に直面しました。強制的にhttpスキームにリダイレクトしようとしましたが、多くのリダイレクトエラーが登場しました。