web-dev-qa-db-ja.com

上流へのNginxリバースプロキシが502 Bad Gatewayを取得していますか?

現在のアプリケーションデプロイメントはHTTPポートでトラフィックを受信して​​おり、NginxはそれをHTTPSにリダイレクトします。これは正常に動作しています。

現在、別のNginxサーバーがこれらの既存のNginxサーバー(別名アップストリーム)のロードバランサーのように機能することを計画しています。

以下は私が試していた構成です

upstream web_rack {
    server x.x.x.x;
}
server {

    location / {
        proxy_pass https://web_rack;
    }
}

しかし、502 Bad Gateway以下のログのエラー:

2017/03/14 06:23:49 [エラー] 2402#2402:5 SSL_do_handshake()が失敗しました(SSL:エラー:140770FC:SSLルーチン:SSL23_GET_SERVER_HELLO:不明なプロトコル)へのSSLハンドシェイクアップストリーム、クライアント:189.166.35.243、サーバー:、要求: "GET/HTTP/1.0"、アップストリーム: " https:// xxxx:80 / "

前もって感謝します。

2
PrashantB

アップストリームまたはサーバーの設定に問題がある可能性があります。

エラーメッセージは、ポート80でアップストリームにhttpsを話そうとしていることを示しています:upstream: "https://x.x.x.x:80/"

次の質問はあなたの質問に関連しており、あなたがやろうとしていることと同じことを達成するための(ほぼ)機能する構成を提供します: アップストリームSSLでリバースプロキシとしてNginxを構成する

少なくとも、アップストリームを次のように修正することをお勧めします。

upstream web_rack {
    server x.x.x.x:443;
}
3