2015-05-29 75 views
0

我在我的服務器上使用NGINX配置了三個站點,前兩個工作正常。一個是靜態網站,一個是運行Rails(使用獨角獸)。我試圖鏡像NGINX/Unicorn配置。NGINX沒有響應

對於非工作站點,我在我的瀏覽器中出現「問題加載站點」,在我的NGINX錯誤日誌(甚至在調試級別)或我的獨角獸日誌中完全沒有任何問題。當我嘗試捲入網站時,我也沒有收到任何信息。

我已經通過ping域名雙重檢查了DNS,並且正在用盡想法。我也試着把這個默認服務器和IP地址瀏覽。

關於如何去調試的想法?我想至少了解NGINX是否看到這些請求。

NGINX配置:

upstream unicorn-signup { 
    server unix:/home/signup/app/tmp/sockets/unicorn.sock; 
} 

server { 
     listen 80; 
     listen [::]:80; 

     root /home/signup/app/current/public; 
     server_name signup.quote2bill.com; 

     # configure for Unicorn (NGINX acts as reverse proxy) 
     location/{ 
       try_files $uri @unicorn; 
     } 

     location @unicorn { 
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
       proxy_set_header Host $http_host; 
       proxy_set_header X-Forwarded_Proto $scheme; 
       proxy_redirect off; 
       proxy_pass http://unicorn-signup; 
       proxy_read_timeout 300s; 
       proxy_send_timeout 300s; 
     } 
} 
+0

您的操作系統是否是RedHat?在這種情況下,也許你的防火牆(iptables)拒絕流量。 –

+0

感謝您的建議@Survivor。我正在運行'ubuntu'和'ufw'作爲防火牆。我試過禁用防火牆。 –

回答

0

固定!這是我生產配置中可怕的force_ssl標誌。對於未來的旅行者,以下是我如何進行故障排除:

  1. 讓Costco運行,以清除我的思想和購買大量的東西。
  2. 要確定它是DNS,NGINX還是Unicorn/Rails問題,我用一個非常簡單的NGINX配置替換了我的NGINX配置,並在我的公共根目錄中放置了一個簡單的index.html。這工作得很好 - 這讓DNS脫身(我可以在Web服務器上解析域名)。
  3. 我第n次區分工作和非工作的NGINX配置文件,並儘可能使它們儘可能接近但沒有找到任何東西。
  4. 然後我注意到,當我在服務上面#2中的簡單index.html文件時,域沒有被重定向到https://,但是當切換到我的「正常」Unicorn/Rails版本時,我總是被重定向。
  5. 我搜索了Rails重定向到SSL並記住了force_ssl標誌。
  6. 我檢查了我的兩個項目,並注意到該標誌沒有設置在工作項目中,而是設置在非工作項目中(吸菸槍)。
  7. 我更改,提交,重新部署和重新載入瀏覽器,它...沒有工作(!)幸運的是,我對clear browser cache有良好的理解,並再試一次,現在都很好。

希望這可以幫助別人。