
なぜこのようなことが起こるのか分からないので、助けていただければ幸いです。次の 2 つのドメインがあります。
- アルファ
- beta.com
どちらも同じサーバー IP を指しています:
- xxxx さん
このサーバーでは単一の nginx を実行しています。ファイアウォールでは、ポート 80 と 443 をこのサーバーの内部 IP に転送しています。
- 192.168.1.2
両方のドメインには独自の証明書があります。
これら両方のドメインのサーバー構成は次のとおりです。
- alpha.com:http://pastebin.com/u9absNMe
- beta.com:http://pastebin.com/m7dV2cqk
問題: ここでの問題は、alpha.com にアクセスすると、サーバーが http.s://alpha.com にリダイレクトし、alpha.com のコンテンツを読み込むことです。これまでのところ、問題ありません。ブラウザーで新しいタブを開いて beta.com と入力すると、ブラウザーの URL が http.s://beta.com に変わりますが、alpha.com のコンテンツが読み込まれます。
ブラウザに入力された URL に基づいて各ドメインの適切なディレクトリをサーバーに提供し、https を維持するように nginx に指示するにはどうすればよいでしょうか?
ありがとう。
答え1
両方の仮想ホストがループバック アドレス上の同じポートを指しています。
何を聴いていますかhttp://127.0.0.1:2368
?
そのサービスを 2 つの異なるポートでリッスンするように構成し、各 nginx vhost を独自の一意のポートにプロキシする必要があります。
答え2
答え3
実は、私は自分の間違いに気づきました。ドメインの 1 つで Ghost ブログ プラットフォームを実行し、もう 1 つのドメインで WordPress を実行していました。WordPress サイトの nginx 構成ファイルから次のコードを削除することで、この問題を解決しました。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header HOST $http_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:2368;
参考までに、@MyNameIsBoring が言及したポート 2368 は、Ghost が使用するポートなので、80 と 443 でサーバーするようにリバース プロキシを設定しました。明らかに、これは WordPress では機能しませんが、コードのその部分を削除すると、すべて正常に機能し始めます。