如何不在 NginX 负载均衡器上终止 ssl

sla*_*fer 5 nginx

我想知道如何让 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我经历过:Nginx load balance with upstream SSL

我真正的问题是,如果我想让 NginX 监听 443 上的流量,那么我需要在 nignx 上配置 ssl 终止。否则 nginx 服务将无法启动,并且会抱怨缺少 ssl 证书/密钥。

简而言之,我希望 Nginx 简单地接受 443 上的流量并将其转发到负载均衡的 Web 服务器节点上的 443。然后让我的网络服务器完成 SSL 工作。

最佳做法是在负载平衡器级别进行 SSL 卸载,但我想不这样做。

谢谢。

Mor*_*eu5 2

这需要 NGINX 进行第 4 层监听/路由,但显然不完全 支持。NGINX 似乎支持 SNI,但由于某种原因我无法阻止它终止 TLS 连接。

我最终使用了 HAProxy。