所以我的负载均衡器看起来就像这样:
当DNS记录直接指向192.168.0.20时,一切正常(https)。
但是当通过负载均衡器运行时,根本无法工作。在运行
我已经在负载均衡器上运行了
请告诉我是否有更好的方法。我是否可以在负载均衡器上设置SSL证书并将这些证书传递到集群中?
upstream myapp1 {
server 192.168.0.20;
server 8.8.8.8 backup;
}
server {
listen 80 default;
location / {
proxy_pass http://myapp1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
集群中的众多域配置之一(192.168.0.20
)如下所示:
server {
listen 80;
root /var/www/maximilian.xyz/public_html;
index index.php index.html index.htm;
server_name maximilian.xyz www.maximilian.xyz;
...
}
现在是你不知道的部分!
我一直在按照这个教程使用stream {...}
配置来尝试以类似上文的方式处理ssl/https/443:
stream {
upstream myapp1 {
server 192.168.0.20:443;
server 8.8.8.8:443 backup;
}
server {
listen 443 ssl;
proxy_pass myapp1;
}
}
这次我在集群中添加了 192.168.0.20
:
server {
listen 443 ssl;
ssl on;
ssl_certificate /etc/letsencrypt/live/maximilian.xyz/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/maximilian.xyz/privkey.pem;
server_name maximilian.xyz www.maximilian.xyz;
root /NAS/maximilian.xyz/public_html;
index index.php index.html index.htm;
...
}
当DNS记录直接指向192.168.0.20时,一切正常(https)。
但是当通过负载均衡器运行时,根本无法工作。在运行
service nginx configtest
时nginx上的一切都很好。我已经在负载均衡器上运行了
tcpdump port 443 and '(tcp-syn|tcp-ack)!=0'
,返回访问https://maximilian.xyz/
,但在集群上运行时没有任何捕获内容,这意味着TCP数据包未被传递,为什么?请告诉我是否有更好的方法。我是否可以在负载均衡器上设置SSL证书并将这些证书传递到集群中?