第二个反向代理子域给了我奇怪的 SSL 和上游错误

第二个反向代理子域给了我奇怪的 SSL 和上游错误

我目前的情况是我有一个运行docker的ubuntu服务器。在那个 docker 中,我运行 NGINX 作为反向代理,这对于 portainer 来说效果很好,但是当我尝试使用相同的配置(不同 IP 的 ofc)添加第二个子域时,我收到以下错误。它还在浏览器中给我一个 502 错误。

2022/06/13 12:33:29 [错误] 22#22: *5 SSL_do_handshake() 失败(SSL:错误:1408F10B:SSL 例程:ssl3_get_record:版本号错误),同时 SSL 与上游握手,客户端:172.71.94.85 ,服务器:prometheus.x.net,请求:“GET /favicon.ico HTTP/1.1”,上游:“https://172.20.0.110:9090/favicon.ico”,主机:“prometheus.x.net”,引荐来源:“https://prometheus.x.net/”

我使用 Cloudflare 来管理我的源 SSL 证书和边缘 SSL 证书。

这是我的不工作页面的配置(它与其他工作子域完全相同,只是 IP 不同。我三次检查了 IP 和端口,它应该可以工作。

upstream prometheus {
        server          prometheus:9090;
}

server {
        listen 80;
        listen [::]:80;
        server_name prometheus.x.net;
        return 302 https://$server_name$request_uri;
}

server {
        listen          443 ssl;
        listen          [::]:443 ssl;
        ssl_certificate         /etc/ssl/cert.pem;
        ssl_certificate_key     /etc/ssl/key.pem;
        ssl_client_certificate  /etc/ssl/cloudflare.crt;
        ssl_verify_client       on;
        server_name     prometheus.x.net;

        location / {
                # Allow websockets
                proxy_http_version 1.1;
                proxy_set_header Connection "upgrade";
                proxy_set_header Upgrade $http_upgrade;

                # Default headers
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_pass https://prometheus;
        }
}

我该如何解决这个问题?

编辑:我为 conf.d 文件夹中的每个子域使用 .conf 文件,我不知道这是否重要?

答案1

发帖后一分钟就明白了。应该多花一分钟来排除故障。

与 portainer 不同,该应用程序没有内置 HTTPS,因此根据我当前的配置,NGINX 尝试使用 HTTPS 在本地访问该应用程序,而它只支持 HTTP。

proxy_pass https://prometheus;

应该

proxy_pass http://prometheus;

相关内容