2017-07-05 46 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' –