nginx - Nginx 中的状态 502

标签 nginx centos centos7

我在 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/

相关文章:

php - Nginx RTMP 不录制

django - Docker中的Django微服务

php - 如何从地址中删除index.php,同时通过fastcgi将请求重定向到index.php?

ssl - NGINX 转发 ssl 背后的 Tomcat 7

mysql - 恢复我的 root 用户在 MariaDB 上的 DBA 权限

image - 在成功的 TeamCity 构建上创建 Docker 镜像

c - 为什么 gcc 提示已经存在的库找不到?

centos - ntpdate显示偏移但不同步

hadoop - CDH 网络接口(interface)速度抑制

centos - CentOS 7脚本中变量的串联