2015-03-18 129 views
3

我試圖設置Nginx,Unicorn和Rails應用程序一起工作。 Nginx和Nnicorn正在運行,我使用ps命令檢查了它。Nginx,Unicorn和Rails = 502 Bad Gateway

但在嘗試訪問時,我的網頁Ive得到了502錯誤網關

Nginx的錯誤日誌中有一行:

2015年3月18日19時53分26秒[錯誤] 14319#0:* 1 connect()以 UNIX:/var/sockets/unicorn.mypage.sock失敗(11:資源暫時 不可用),同時連接到上游

可以採取什麼問題?

我/etc/nginx/conf.d/default.conf

upstream app { 
    server unix:/var/sockets/unicorn.mypage.sock fail_timeout=0; 
} 

server { 

    listen 80; 
    server_name mypage.com; 

    # Application root, as defined previously 
    root /home/rails/mypage/public; 

    location ^~ /assets/ { 
     gzip_static on; 
     expires max; 
     add_header Cache-Control public; 
    } 

    try_files $uri/index.html $uri @app; 

    location @app { 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_redirect off; 
     proxy_pass http://app; 
    } 

    error_page 500 502 503 504 /500.html; 
    client_max_body_size 4G; 
    keepalive_timeout 10; 
} 

/home/rails/mypage/config/unicorn.rb

working_directory "/home/rails/mypage" 

pid "/home/rails/mypage/pids/unicorn.pid" 

stderr_path "/home/rails/mypage/log/unicorn.log" 
stdout_path "/home/rails/mypage/log/unicorn.log" 

listen "/var/sockets/unicorn.mypage.sock", backlog: 1024 

worker_processes 2 

timeout 30 
+0

嘗試在套接字行下添加另一個'listen 3000',並直接連接到'http:// localhost:3000'來查看Unicorn/Rails是否工作正常 – number5 2015-03-19 05:13:31

回答

1

我解決了這個問題。

這是因爲我的獨角獸服務器在開發環境中啓動,而不是在生產環境中。 Unicorn試圖連接到開發數據庫,​​但缺少database.yml中dev db的證書。 在我製作env的獨角獸之後,所有的東西都連接好了。

2

它看起來像座問題,但它通常是(111:連接被拒絕)當套接字關閉,所以我認爲這是應用程序問題(高負載,執行緩慢等)。

嘗試減少積壓,並再次看到日誌的詳細信息:

listen "/var/sockets/unicorn.mypage.sock", backlog: 64 

:backlog => number of clients

相關問題