nginx 反向代理到非标准 ssl 端口

nginx 反向代理到非标准 ssl 端口

我很难让它工作,这是我的配置文件。当我导航到“sub.domain.com”时,我被重定向到 URL 的 https 版本,所以我知道 nginx 正在接收请求,但反向代理没有加载 10.3.2.200:8443。当我加载“https://sub.domain.com“,Chrome 告诉我“ERR_CONNECTION_CLOSED”。我使用了 StackExchage 上其他答案的片段 + 其他在线教程,但没有成功。

特别的是,如果我运行测试并在第二个服务器块中将 443 更改为 20205,那么反向代理就可以与'https://sub.domain.com:20205'并成功转发至10.3.2.200:8443。

## running on 10.3.2.205
upstream destsrv {        
    server 10.3.2.200:8443;
}
server {        
    listen 80 http2;
    listen [::]:80 http2;        
    server_name sub.domain.com;        
    return 301 https://$server_name$request_uri;
}
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name sub.domain.com;
    ssl_certificate /etc/letsencrypt/certs/star_domain_com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/certs/star_domain_com/privkey.pem;
    location / {
        proxy_pass https://destsrv;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
    }
}

这是家庭服务器上的反向代理,我将端口 80 和 443 转发到我的 nginx 服务器。

这里发生了什么?

答案1

@FedericoGalli 事实证明我的路由器正在监听 443 上的连接,所以我的重定向从未到达 Web 服务器。一旦我停止它,它就开始工作了。

故事的寓意是:不要只检查正在运行的网络服务器,还要确保您的路由设备本身没有使用某些端口。

相关内容