2013-03-13 20 views
11

httpsサーバ用のロードバランサとしてNginxを設定しようとしています。アップストリームは、SSL証明書が設定されたポート443で処理されます。 SSL証明書の設定がNginxサーバーではなく上流のサーバーでのみ処理されるように、Nginxを構成する方法は?NginxロードバランスとアップストリームSSL

+0

解決した設定を投稿してください。 –

答えて

13

Upstream moduleReverse Proxy moduleを使用する必要があります。 HTTPS上流へのプロキシをリバースするには、

proxy_pass https://backend; 

ここで、バックエンドはアップストリームブロックです。

しかし、私がこれをやっていたら、nginxサーバでsslを終了し、ssl暗号化/復号化のオーバーヘッドを気にする代わりに、コンテンツを提供している上流のアプリケーションサーバを作ります。 nginxでsslターミネーションを設定することも、SSL moduleを使用すると非常に簡単です。非常に良いケーススタディもhereです。

+0

サンプル設定はありますか?ブラウザに "ssl_error_rx_record_too_long"が表示され、NGINXエラーログに何も表示されません。 –

+0

これで、あなたの問題は解決しましたか? http://serverfault.com/questions/497430/error-code-ssl-error-rx-record-too-long –

+1

いいえ、私はそれを試みました。このサンプルの設定ファイルは、(NGINXサーバには何もないので)私がやっていないSSL証明書を定義しています。 –

3

Nginxフォーラムでreading relevant discussionから理解していれば、NginxはアップストリームSSL接続をとにかく終了する必要があるため、これは不可能です。 Nginxの使用を主張するなら、SSL設定を複製し、証明書と鍵をNginxが利用できるようにするだけです。

私が結論した議論では、HAProxyはSSL上流パススルーの方がずっと優れていると結論づけました。ここにはrelevant postがあります。このような目的でHAProxyを設定する方法について知りました。私はHAProxyの経験がないので、ソリューションの構成や一般的な実行可能性を要約することはできません。

更新

1.9.2以来nginxのはHAProxyのproxy protocolをサポートしています。

関連する問題