2017-01-30 2 views
0

Настройка сайта django, я могу запустить его за пределами virtualenv с помощью uwsgi --ini kb_uwsgi.ini --http :8000, но когда я попытаюсь настроить его в прямом эфире с nginx приносит ошибка в логах:Запуск django с uwsgi & nginx error: connect() для unix: /tmp/kb.sock failed

2017/01/30 08:00:26 [crit] 24629#24629: *1 connect() to unix:/tmp/kb.sock failed (2: No such file or directory) while connecting to upstream, client: 197.232.12.165, server: kenyabuzz.nation.news, request: "GET/HTTP/1.1", upstream: "uwsgi://unix:/tmp/kb.sock:", host: "kenyabuzz.nation.news" 

Вот файл Nginx

# kb.conf 

# the upstream component nginx needs to connect to 
upstream django { 
    server unix:/tmp/kb.sock; # for a file socket 
    #server 0.0.0.0:8000; # for a web port socket (we'll use this first) 
} 

# configuration of the server 
server { 
    # the port your site will be served on 
    listen 0.0.0.0:80; 
    # the domain name it will serve for 
    server_name kenyabuzz.nation.news; # 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 /home/ubuntu/webapps/kenyabuzz/kb/media; # your Django project's media files - amend as required 
    } 

    location /static { 
     alias /home/ubuntu/webapps/kenyabuzz/kb/static; # your Django project's static files - amend as required 
    } 

    location /favicon.ico { 
     alias /home/ubuntu/webapps/kenyabuzz/kb/static/kb/favicon.ico; # favicon 
    } 

    # Finally, send all non-media requests to the Django server. 
    location/{ 
     uwsgi_pass django; 
     include  /home/ubuntu/webapps/kenyabuzz/uwsgi_params; # the uwsgi_params file you installed 
    } 
} 

uwsgi INI

# kb_uwsgi.ini file 
[uwsgi] 

# Django-related settings 
# the base directory (full path) 
chdir   = /home/ubuntu/webapps/kenyabuzz 
# Django's wsgi file 
module   = kb.wsgi 
# the virtualenv (full path) 
home   = /home/ubuntu/webapps/djangoenv 

# process-related settings 
# master 
master   = true 
# maximum number of worker processes 
processes  = 10 
# the socket (use the full path to be safe 
socket   = /tmp/kb.sock 
# ... with appropriate permissions - may be needed 
chmod-socket = 664 

# clear environment on exit 
#vacuum   = true 

и uwsgi_params

uwsgi_param QUERY_STRING  $query_string; 
uwsgi_param REQUEST_METHOD  $request_method; 
uwsgi_param CONTENT_TYPE  $content_type; 
uwsgi_param CONTENT_LENGTH  $content_length; 

uwsgi_param REQUEST_URI  $request_uri; 
uwsgi_param PATH_INFO   $document_uri; 
uwsgi_param DOCUMENT_ROOT  $document_root; 
uwsgi_param SERVER_PROTOCOL $server_protocol; 
uwsgi_param REQUEST_SCHEME  $scheme; 
uwsgi_param HTTPS    $https if_not_empty; 

uwsgi_param REMOTE_ADDR  $remote_addr; 
uwsgi_param REMOTE_PORT  $remote_port; 
uwsgi_param SERVER_PORT  $server_port; 
uwsgi_param SERVER_NAME  $server_name; 

Файл не существует kb.sock и я рассмотрел попытался создать его с соответствующими правами, но это приводит к ошибке доступа, само по себе может быть диагноз проблема, которую я создал.

+0

заменить сервера UNIX: /tmp/kb.sock; сервер unix: ///tmp/kb.sock; – MicroPyramid

ответ

0

Я думаю, вы должны использовать unix:// вместо unix:

И читать эту post, используйте /var/run вместо /tmp