2012-11-06 30 views
1

我想用nginx和uwsgi在amazon ec2(ubuntu)上運行django站點。我按照here所述的方式進行了基本設置。uwsgi:從啓動腳本運行時拒絕連接

當我開始uwsgi在命令行(如Ubuntu的用戶),一切工作正常,該網站提供了正確:

/home/ubuntu/uwsgi-1.3/uwsgi --home /home/ubuntu/apps/mysite-env/site/ --socket /tmp/uwsgi_mysite.sock --chmod-socket --module mysite_wsgi --pythonpath /home/ubuntu/apps/mysite-env/site/mysite/production -H /home/ubuntu/apps/mysite-env 

然而,當我想通過一個啓動腳本,uwsgi報告醜化這個以下錯誤:

2012/11/06 12:50:08 [error] 1773#0: *10 connect() to unix:///tmp/uwsgi_mysite.sock failed (111: Connection refused) while connecting to upstream, client: 91.66.145.99, server: *.mysite.com, request: "GET/HTTP/1.1", upstream: "uwsgi://unix:///tmp/uwsgi_mysite.sock:", host: "mysite.com" 

(這看起來像一個權限問題)

我的啓動腳本看起來像這樣

# file: /etc/init/uwsgi_mysite.conf 
description "uWSGI server" 

start on runlevel [2345] 
stop on runlevel [!2345] 

respawn 
exec /home/ubuntu/uwsgi-1.3/uwsgi --home /home/ubuntu/apps/mysite-env/site/ --socket /tmp/uwsgi_mysite.sock --chmod-socket 777 --module mysite_wsgi --pythonpath /home/ubuntu/apps/mysite-env/site/mysite/production -H /home/ubuntu/apps/mysite-env 

我曾嘗試爲Ubuntu的用戶 exec sudo -u ubuntu "command...「 但無濟於事執行啓動命令。

我也試圖通過傳遞

--chmod-socket 777 

但這裏沒有運氣要麼改變套接字文件的權限。我對如何解決這個問題沒有任何意見,任何意見都是值得讚賞的!

+0

「我曾嘗試爲Ubuntu的用戶執行sudo的-u Ubuntu的執行啓動命令‘命令’,但無濟於事」,humn,你嘗試在你的uwsgi調用添加--uid在啓動腳本?另外,如果您手動chmod 777套接字,它是否工作? – jpic

+0

感謝您的建議,手動更改套接字權限爲777沒有效果,並傳入一個--uid neigher雖然...任何其他建議? :)乾杯! – Hoff

+0

嗯,在這種情況下,我只是'strace -p [PID應該訪問SOCKET(HTTPD)]'並讀取錯誤。但我不明白,你說uwsgi日誌'2012/11/06 12:50:08 [error] 1773#0:* 10連接()到unix:///tmp/uwsgi_mysite.sock失敗(111:連接被拒絕),同時連接到上游,客戶端:91.66.145.99,服務器:* .mysite.com,請求:「GET/HTTP/1.1」,上游:「uwsgi:// unix:///tmp/uwsgi_mysite.sock: 「,主機:」mysite.com「',你確定它不是記錄那個nginx嗎? – jpic

回答

2

我認爲連接錯誤是由/tmp/uwsgi_mysite.sock文件的權限問題引起的。

嘗試在下面添加「--uid YOURNAME --gid www-data」和「--chmod-socket 666」選項到您的新貴腳本。並確保YOURNAME在www-data組(默認的nginx組)中。

exec /home/ubuntu/uwsgi-1.3/uwsgi --uid YOURNAME --gid www-data --home /home/ubuntu/apps/mysite-env/site/ --socket /tmp/uwsgi_mysite.sock --chmod-socket 666 --module mysite_wsgi --pythonpath /home/ubuntu/apps/mysite-env/site/mysite/production -H /home/ubuntu/apps/mysite-env 
+0

謝謝!您保存了我的一天..重要的部分是用戶應該是www數據組的一部分! –