【问题标题】:SSL Passthrough with Nginx使用 Nginx 的 SSL 直通
【发布时间】:2018-06-27 08:05:48
【问题描述】:

我已经设置了一个 Nginx Ingress 来代理流量到我使用 kubeadm 设置的 Kubernetes 集群。这似乎运作良好。

在主机(设置主节点的位置)上,我运行了许多其他服务,这些服务正在由另一个 Nginx 代理(面向公众)。

我想要实现的是将所有流量从第一个 Nginx(面向公众)路由到特定域(指向集群)到集群中运行的 Nginx。

Internet -----> Nginx Public -----> Nginx Ingress -----> Cluster

Nginx Ingress 正在监听 TLS/SSL 流量。

所以我想通过公共 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;
    }
}

【问题讨论】:

  • 请解释您的意思似乎不起作用?
  • 如果 i curl -iv https://foo.dev-new.test.co 使用 404 到达 Nginx 入口默认后端控制器
  • 不过,我可以curl -ivk https://10.109.70.33 --header Host: foo.dev-new.test.co
  • 您需要在proxy_pass 块中添加proxy_set_header Host $host;
  • 是的,这就是缺少的。谢啦。随意将其添加为答案并标记它。

标签: ssl nginx kubernetes


【解决方案1】:

你需要添加

proxy_set_header Host $host; 

在您的 proxy_pass 块中。这是必需的,以便服务器知道您正在尝试查看哪个虚拟主机

【讨论】:

    猜你喜欢
    • 2023-03-25
    • 2016-11-17
    • 2019-07-29
    • 2017-07-07
    • 1970-01-01
    • 2019-07-04
    • 2017-06-10
    • 2020-05-09
    • 2017-09-20
    相关资源
    最近更新 更多