soochy1
soochy1

Reputation: 23

uwsgi nginx connection to unix socket refused

I'm trying to migrate django app from ubuntu 14.04 to raspberry pi ( raspbian os) for ubuntu i have done http://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html and it worked.

in raspbian it's not so simple.

this is my bills_nginx.conf in /etc/nginx/sites-enabled

     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
    }
}

and this is my UWSGI INI file:

[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

in error.log I get:

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"

please help me get it working :)

Upvotes: 2

Views: 6480

Answers (1)

Joseph
Joseph

Reputation: 136

chmod-socket, chown-socket, gid, uid, socket For uWSGI and nginx to communicate over a socket, you need to specify the permissions and the owner of the socket. 777 as chmod-socket is much too liberal for production. However, you may have to mess around with this number to get it correct, so everything necessary can communicate. If you don’t take care of your socket configurations, you will get errors such as:

So make sure the permission of the folder .. I think better way

$ 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) }

More reference : Pls check A great article http://monicalent.com/blog/2013/12/06/set-up-nginx-and-uwsgi/

Also I have the same issue before may you can check my configuration too

nginx django uwsgi page not found error

Upvotes: 1

Related Questions