2017-07-05 42 views
0

我在CentOS 7服务器上配置了Nginx。在那里我有两个站点在运行,我使用Cerbot安装了SSL证书,并且没有错误地执行了这个过程。在那里,我有2子域,x.mydomain.comy.mydomain.comNginx中的状态502

,我运行对应于那些对自己的港口,9100为第二个一个和9200上运行的应用程序的网站,所以我配置的Nginx重定向请愿书相应的端口。例如,对于第一个应用程序的服务器块:

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配置中出现错误,我错过了什么?谢谢

回答

0

状态码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 

} 

如果你仍然想使用127.0.0.1:9100对于proxy_pass,你应该检查你的应用程序,可能它没有绑定在127.0.0.1上。

+0

我做到了,但没有任何改变。不知道如何调试 –

+0

@SrednyMCasanova请显示来自nginx'error.log'的输出。 –

+0

我有这个错误:“连接()192.168.10.106:8082失败(13:权限被拒绝),而连接到上游”但我设法修复它只是键入'setsebool -P httpd_can_network_connect 1' –