gpt4 book ai didi

nginx - Nginx 中的状态 502

转载 作者:行者123 更新时间:2023-12-04 19:43:17 26 4
gpt4 key购买 nike

我在 CentOS 7 服务器上配置了 Nginx。我有 2 个站点正在运行,我使用 Cerbot 安装了 SSL 证书,并且该过程执行没有错误。我有 2 个子域,x.mydomain.comy.mydomain.com
我正在运行的站点对应于在它们自己的端口上运行的应用程序,其中一个为 9100,第二个为 9200,因此我将 Nginx 配置为将请求重定向到相应的端口。例如,第一个应用程序的服务器 block 是:

   server {
listen 80;
server_name x.mydomain.com;
access_log logs/mydomainX.log main;

location / {
proxy_pass http://127.0.0.1:9100;
}

listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/x.mydomain.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/x.mydomain.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot


if ($scheme != "https") {
return 301 https://$host$request_uri;
} # managed by Certbot

}

所以,如果我在浏览器中打开 x.mydomain.com我从 Nginx 获得状态码 502,但是,如果我直接使用 IP 打开: xxx.xxx.xxx.xxx.xxx:9100然后我可以看到该网站。所以我在 Nginx 配置中一定有问题,我错过了什么?谢谢

最佳答案

状态码 502 表明 nginx 可以连接到代理上游,所以 127.0.0.1:9100 上的上游有问题.

如果请求 xxx.xxx.xxx.xxx.xxx:9100 工作正常,您可以更改您的 nginx配置如下:

server {
listen 80;
server_name x.mydomain.com;
access_log logs/mydomainX.log main;

location / {
proxy_pass http://xxx.xxx.xxx.xxx.xxx:9100;
}

listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/x.mydomain.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/x.mydomain.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot


if ($scheme != "https") {
return 301 https://$host$request_uri;
} # managed by Certbot

}

如果您仍想为 proxy_pass 使用 127.0.0.1:9100,您应该检查您的应用程序,可能它没有绑定(bind)到 127.0.0.1。

关于nginx - Nginx 中的状态 502,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44931057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com