我很难让它工作,这是我的配置文件。当我导航到“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 服务器。一旦我停止它,它就开始工作了。
故事的寓意是:不要只检查正在运行的网络服务器,还要确保您的路由设备本身没有使用某些端口。