我们有nginx运行两个服务器(端口80和443)。这些proxy_pass
我们的上游:
upstream app_nodes {
ip_hash;
server 127.0.0.1:3000;
server 127.0.0.1:3001;
}
upstream app_nodes_https {
ip_hash;
server 127.0.0.1:8000;
server 127.0.0.1:8001;
}
对于80端口,这很好。但是,对于443,这会失败,因为我们没有在nginx中定义ssl证书。我们需要我们的node.js应用程序(侦听端口8000/8001)来处理证书以动态支持许多域。
有没有办法让nginx简单地代理我们的上游服务器并让它们处理ssl?
谢谢
编辑:这是我们443的服务器块
server {
listen 443;
gzip on;
gzip_types text/plain application/json application/ocet-stream;
location / {
proxy_pass https://app_nodes_https;
add_header X-Upstream $upstream_addr;
add_header X-Real-IP $remote_addr;
include /etc/nginx/proxy_params;
}
}
执行nginx -t
实际上会出现https protocol requires SSL support
答案 0 :(得分:0)
解决方案是使用流:
stream {
upstream https_stream {
hash $remote_addr;
server 127.0.0.1:8000;
server 127.0.0.1:8001;
}
server {
listen 443;
proxy_pass https_stream;
}
}
这假设您在8000/8001上运行您的应用实例。