2016-09-09 10 views
1

何らかの理由により、nginx tcp load balanceを設定する必要がありますが、ssl終了が必要です。 Nginxがこれを行うことができるかどうかはわかりません。 tcpはレイヤー4なので、sslはレイヤー5です。SSLパススルーは間違いなく機能します。しかし、SSL終了で?提案ありがとう。 nginxのは、終了せずに、プロキシSSLトラフィックをすることができます - SSLは、まだTCPのでhttps://www.nginx.com/resources/admin-guide/tcp-load-balancing/nginxはSSL終端のTCP負荷バランスを行うことができます

答えて

3

nginxのは、ストリームモジュールとL3/4バランサとして機能することができます。

また、ストリームモジュールでSSLトラフィックを終了させることもできますが、これはオプションです。

例1:この場合、SSL終了

stream { 
    upstream stream_backend { 
     server backend1.example.com:993; 
     server backend2.example.com:993; 
    } 
    server { 
     listen 993; 
     proxy_pass stream_backend; 
    } 
} 

ことなくSSL上IMAP用のTCPトンネルは、SSL終端はbackend1/2によって処理されます。

例2:SSL終了を伴うIMAPのTCPトンネル。

stream { 
    upstream stream_backend { 
     server backend1.example.com:443; 
     server backend2.example.com:443; 
    } 
    server { 
     listen 993 ssl; 
     proxy_pass stream_backend; 
     ssl_certificate  /etc/ssl/certs/server.crt; 
     ssl_certificate_key /etc/ssl/certs/server.key; 
    } 
} 

この場合、nginxとバックエンド1/2の間のトラフィックは暗号化されていません(IMAP 443ポートが使用されます)。

例3:暗号化されていない受信し、それが

stream { 
    upstream stream_backend { 
     server backend1.example.com:993; 
     server backend2.example.com:993; 
    } 
    server { 
     listen 443; 
     proxy_pass stream_backend; 
     proxy_ssl on; 
     proxy_ssl_certificate  /etc/ssl/certs/backend.crt; 
     proxy_ssl_certificate_key /etc/ssl/certs/backend.key; 
    } 
} 

ので、クライアントはSSLなしで私達のnginxに接続し、暗号化し、このトラフィックは、SSL暗号化を使用して/ 2 backend1するproxed。

+0

tcp負荷分散を行うとSSLを終了できるかどうかわかりません。それに関するリンクや情報はありますか? thx – adiggo

+0

あなたがバランスHTTPSについて話しているなら、nginxでtcp ssl terminationをする必要はありません。 tcp proxy(HTTPSトラフィックは上流で終了します)を使用できます。または、nginxとHTTPリバースプロキシでHTTPSを終了することもできます。 –

+0

レイヤ4のTCP負荷分散を行うと、SSLをnginxレベルで終了できますか?間違いなく私はバックエンドでsslを終了できます。 – adiggo

関連する問題