5

NginX (ロード バランサー) が 443 でトラフィックを受け入れ、負荷分散された Web サーバー ノードのポート 443 に転送する方法を知りたいです。

NginXレベルでSSLターミネーションが発生するロードバランサーとしてNginXを使用しています。そして、NginX は暗号化されていないトラフィックをポート 80 で Web サーバーに送信します。

これは私の現在のngnx構成です:

upstream appserver {
    server 10.0.1.132;
    server 10.0.1.243;
}

server {
    listen       443 ssl;
    server_name  localhost;

    ssl_certificate      /etc/nginx/cert.pem;
    ssl_certificate_key  /etc/nginx/cert.key;

    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;

    location / {
        proxy_pass http://appserver;
    }
}

私は行ってきました:アップストリームSSLを使用したNginxロードバランス

私の本当の問題は、NginX に 443 でトラフィックをリッスンさせたい場合は、nignx で ssl ターミネーションを構成する必要があることです。そうしないと、nginx サービスが開始されず、ssl 証明書/キーが見つからないというエラーが表示されます。

要するに、Nginx が単純に 443 でトラフィックを受け入れ、それを負荷分散された Web サーバー ノードの 443 に転送するようにしたいのです。次に、Web サーバーに SSL の機能を実行させます。

ベスト プラクティスは、ロード バランサー レベルで SSL オフロードを行うことですが、それ以外の方法で行いたいと考えています。

ありがとう。

4

3 に答える 3

2

これには、NGINX 側でレイヤー 4 スヌーピング/ルーティングが必要ですが、これは明らかに完全に はサポートされていません。NGINX は SNI に対応しているようですが、なぜか TLS 接続の切断を防ぐことができませんでした。

HAProxyを使用することになりました。

于 2016-05-29T09:43:58.363 に答える