1
嗨我想讓nginx和燒瓶在我的本地機器上運行。燒瓶+ nginx =連接被拒絕
我可以使用nginx很好的服務器靜態文件,但是我一直跟uwsgi發生連接問題。
我nginx的:
server {
listen 80;
server_name localhost;
location /static {
alias /path/to/my/static;
autoindex on;
}
location /media {
alias /media;
autoindex on;
}
location/{
include uwsgi_params;
uwsgi_pass unix:/tmp/uwsgi.sock;
uwsgi_param UWSGI_PYHOME /path/to/my/env;
uwsgi_param UWSGI_CHDIR /path/to/my/app;
uwsgi_param UWSGI_MODULE application;
uwsgi_param UWSGI_CALLABLE app;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
/etc/uwsgi/apps-available/uwsgi.ini:
[uwsgi]
plugins=python
vhost=true
socket=/tmp/uwsgi.sock
但如果我嘗試本地主機/,我在nginx錯誤日誌中找到這個:
[error] 1021#0: *16 connect() to unix:/tmp/uwsgi.sock failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:/tmp/uwsgi.sock:", host: "localhost"
我試過改變權限,但我似乎無法解決這個問題。任何人有任何建議?
任何幫助將非常感謝。
感謝這些觀點。所以,我的uwsgi.ini文件通過啓用的站點進行符號鏈接。如果我嘗試使用'uwsgi uwsgi.ini'運行該文件,則會得到以下輸出:http://dpaste.com/hold/1022942/如果以root身份運行它看起來很好。它可能是需要改變的權限還是所有權? – 2013-03-14 17:39:48
是的,這是套接字文件/tmp/uwsgi.sock的權限問題。 'unlink():Permission denied [socket.c]'表示它試圖移除現有套接字來創建一個新套接字,並且由於權限錯誤而失敗。 'bind():已經使用的地址[socket.c]'意味着它不能在該套接字上偵聽,可能出於同樣的原因。 – Tobia 2013-03-14 21:59:45
通常情況下,套接字不會在/ tmp中創建,因爲該服務器上的任何人或其他人都可以創建名爲'/ tmp/uwsgi.sock'的文件並佔用您的位置。你應該創建一個只有運行uwsgi的用戶可以寫入的目錄,並告訴uwsgi在那裏創建它的套接字。這樣的目錄通常是在'/ var/run'下面的系統守護進程或者你的主目錄下面的個人服務。 – Tobia 2013-03-14 22:01:12