HTTPS 到 HTTPS Nginx 反向代理不起作用

时间:2021-05-12 04:24:42

标签: nginx kubernetes load-balancing reverse-proxy nginx-reverse-proxy

使用 NGINX 作为反向代理。所有到 NGINX 的传入连接都被转发到 Kubernetes 集群。 HTTP 到 HTTP 通信工作正常。 HTTPS 到 HTTPS 不起作用。

当我使用 HTTPS 直接访问 Kubernetes 集群的 NodePort 时,它可以工作(即 https::31313/endpoint)。

环境:

  • 我们有一个 Kubernetes 集群,它安装了 istio 入口,可以使用端口 31313 进行访问,端口 31313 是一个安全端口,即使用 HTTPS。
  • NGINX 和 Istio Ingress 均使用使用 openssl 生成的相同证书进行配置。
  • 生成的证书挂载到 Docker 容器。
  • 使用下面提到的 nginx.conf 将 NGINX 作为 Docker 运行。

user  nginx;
worker_processes  auto;
 
worker_rlimit_nofile 65535;
 
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
 
events {
    worker_connections  10000;
}
 
http {
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
 
    server {
        listen 6633;
        server_name localhost;
 
        location /nginx_status {
            stub_status on;
            access_log off;
            allow 127.0.0.1;
            deny all;
        }
    }
}
 
stream {
    upstream stream_80_backend {
        server <IP>:31312;
    }
    upstream stream_443_backend {
        server <IP>:31313;
    }
 
    server {
        listen        80;
        proxy_pass    stream_80_backend;
    }
    server {
        listen        443 ssl;
        proxy_pass    stream_443_backend;
    proxy_ssl_certificate   /etc/nginx/example.com.crt;
    proxy_ssl_certificate_key   /etc/nginx/example.com.key;
        
    ssl_certificate     /etc/nginx/example.com.crt;
    ssl_certificate_key /etc/nginx/example.com.key;
    }
}

尝试了所有可能的在线解决方案,但没有奏效。

0 个答案:

没有答案