2017-03-08 173 views
1

我想從Ubuntu 14.04遷移django應用程序到raspberry pi(raspbian os) 對於Ubuntu我已經完成http://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html,它工作。uwsgi nginx連接到unix套接字被拒絕

在raspbian中並不那麼簡單。

這是我在/ etc/nginx的/啓用的站點 -

 bills_nginx.conf 

# the upstream component nginx needs to connect to 
upstream django { 
    server unix:/var/www/html/bills/bills/bills.sock; # for a file socket 
    #server 127.0.0.1:8001; # for a web port socket (we'll use this first) 
} 

# configuration of the server 
server { 
    # the port your site will be served on 
    listen  80; 
    # the domain name it will serve for 
    server_name 192.168.5.5; # substitute your machine's IP address or FQDN 
    charset  utf-8; 

    # max upload size 
    client_max_body_size 75M; # adjust to taste 

    # Django media 
    location /media { 
     alias /var/www/html/bills/bills/bills/media; # your Django project's media files - amend as required 
    } 

    location /static { 
     alias /var/www/html/bills/bills/static; # your Django project's static files - amend as required 
    } 

    # Finally, send all non-media requests to the Django server. 
    location/{ 
     uwsgi_pass django; 
     include  /var/www/html/bills/bills/uwsgi_params; # the uwsgi_params file you installed 
    } 
} 

bills_nginx.conf,這是我UWSGI INI文件:

[uwsgi] 

# Django-related settings 
# the base directory (full path) 
chdir   = /var/www/html/bills/bills 
# Django's wsgi file 
module   = bills.wsgi 
# the virtualenv (full path) 
home   = /home/seb/.virtualenvs/bills3 
# process-related settings 
# master 
master   = true 
# maximum number of worker processes 
processes  = 10 
# the socket (use the full path to be safe 
socket   = /var/www/html/bills/bills/bills.sock 
# ... with appropriate permissions - may be needed 
uid =www-data 
gid=www-data 
chown-socket=www-data:www-data 
chmod-socket = 666 
# clear environment on exit 
vacuum   = true 
daemonize=/var/log/uwsgi/bills3.log 
error_log=/var/log/nginx/bills3_error.log 

在error.log中我得到:

2017/03/08 10:27:43 [error] 654#0: *1 connect() to unix:/var/www/html/bills/bills/bills.sock failed (111: Connection refused) while connecting to upstream, client: 192.168.5.2, server: 192.168.5.5, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:/var/www/html/bills/bills/bills.sock:", host: "192.168.5.5:8000" 

請幫我搞定:)

+0

nginx.conf中的那個部分在哪裏:'upstream django {server unix:///path/to/your/mysite/mysite.sock; #用於文件套接字 服務器127.0.0.1:8001; #用於網絡端口套接字(我們將首先使用) }'? – JosefScript

回答

0

CHMOD插槽CHOWN插槽GIDUID插座對於uWSGI和nginx的要通過套接字通信,您需要指定的權限和插座的所有者。 777由於chmod-socket對於生產太自由了。然而,你可能不得不亂用這個數字來使它正確,所以一切必要的可以溝通。如果你不把你的插槽配置的照顧,你會得到錯誤,如:

所以一定要確保該文件夾的權限.. 我認爲更好的辦法

$ sudo mkdir /var/uwsgi 
$ sudo chown www-data:www-data /var/uwsgi 

And change the socket path 

upstream django { 
    server unix:/var/uwsgi/bills.sock; # for a file socket 
    #server 127.0.0.1:8001; # for a web port socket (we'll use this first) } 

更多參考:請檢查一個偉大的文章 http://monicalent.com/blog/2013/12/06/set-up-nginx-and-uwsgi/

而且我之前有同樣的問題可能你可以檢查我的配置過於

nginx django uwsgi page not found error

相關問題