我想知道如何让NginX(负载均衡器)接受443上的流量并将其转发到负载平衡的Web服务器节点上的端口443.
我使用NginX作为负载均衡器,其中SSL终止发生在NginX级别.然后NginX将未加密的流量发送到我的网络服务端口80.
这是我目前的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;
}
}
我经历过:Nginx load balance with upstream SSL
我真正的问题是,如果我想让NginX在443上监听流量,那么我需要在nignx上配置ssl终结点.否则nginx服务将无法启动,并会抱怨缺少ssl证书/密钥.
简而言之,我希望Nginx能够简单地接受443上的流量,并在负载均衡的Web服务器节点上将其转发到443.然后让我的网络服务器执行SSL工作.
最佳做法是在负载均衡器级别进行SSL卸载,但我想做其他事情.
谢谢.
最佳答案 这需要NGINX上的第4层监听/路由,这显然不是
entirely
supported.NGINX似乎支持SNI,但由于某种原因我无法阻止它终止TLS连接.
我最终使用了HAProxy.