我已经设置了一个 Nginx Ingress 来代理流量到我使用 kubeadm
设置的 Kubernetes 集群。这似乎运作良好。
在主机上(设置主节点的地方)我有许多其他服务正在运行,这些服务正在由另一个 Nginx(面向公众)代理。
我想要实现的是将所有流量从第一个 Nginx(面向公众)路由到集群中运行的 Nginx 到特定域(指向集群)。
Internet -----> Nginx Public -----> Nginx Ingress -----> Cluster
Nginx Ingress 正在监听 TLS/SSL 流量。
所以我想通过公共(public) Nginx 将 SSL 流量传递给它。
我尝试了以下方法,但似乎没有用。
upstream cluster {
server 10.109.70.33:443 max_fails=10 fail_timeout=10s;
}
server {
listen 80;
listen [::]:80;
listen 443;
listen [::]:443;
server_name *.dev-new.test.co;
access_log /var/log/nginx/cluster-access.log;
error_log /var/log/nginx/cluster-error.log;
location / {
proxy_pass https://cluster;
}
}
最佳答案
你需要添加
proxy_set_header Host $host;
在您的 proxy_pass
block 中。这是必需的,以便服务器知道您正在尝试查看哪个虚拟主机
关于使用 Nginx 的 SSL 直通,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51057637/