2017-01-31 6 views
0

Настройка django с nginx и gunicorn Я смог заставить его обслуживать статические файлы, но приносит 502 на django. Сайт работает нормально с runserver 0.0.0.0:8000 Я также работал над uwsgi раньше, я не думаю, что два (gunicorn и uwsgi) противоречат друг другу.Gunicorn & django sock файл не создан

При запуске gunicorn проверки состояния я получаю

[email protected]:~$ sudo systemctl status gunicorn 
● gunicorn.service - gunicorn daemon 
    Loaded: loaded (/etc/systemd/system/gunicorn.service; enabled; vendor preset: enabled) 
    Active: failed (Result: exit-code) since Tue 2017-01-31 10:36:23 UTC; 4min 20s ago 
    Process: 32261 ExecStart=/home/ubuntu/djangoenv/bin/gunicorn --workers 10 --bind unix:/home/ubu 
Main PID: 32261 (code=exited, status=203/EXEC) 

Jan 31 10:36:23 ip-172-31-16-133 systemd[1]: Started gunicorn daemon. 
Jan 31 10:36:23 ip-172-31-16-133 systemd[1]: gunicorn.service: Main process exited, code=exited, 
Jan 31 10:36:23 ip-172-31-16-133 systemd[1]: gunicorn.service: Unit entered failed state. 
Jan 31 10:36:23 ip-172-31-16-133 systemd[1]: gunicorn.service: Failed with result 'exit-code'. 

и журнал ошибок читает

2017/01/31 10:36:31 [crit] 32205#32205: *7 connect() to unix:/home/ubuntu/webapps/kenyabuzz/gunicorn.socket failed (2: No such file or directory) while connecting to upstream, client: 105.231.127.174, server: kenyabuzz.nation.news, request: "GET/HTTP/1.1", upstream: "http://unix:/home/ubuntu/webapps/kenyabuzz/gunicorn.socket:/", host: "kenyabuzz.nation.news" 

Вот файл конф

#kb gunicorn nginx settings 

server { 
    listen 80; 
    server_name kenyabuzz.nation.news; 

    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 
    } 


    #location/{ 
    # include proxy_params; 
    # proxy_pass http://unix:/home/ubuntu/webapps/kenyabuzz/kb.sock; 
    #} 

    location/{ 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header Host $host; 
      proxy_redirect off; 
      proxy_buffering off; 

      proxy_pass http://app_server; 
    } 
} 

upstream app_server { 
    server unix:/home/ubuntu/webapps/kenyabuzz/gunicorn.socket fail_timeout=0; 
} 

UPDATE

настройки службы Gunicorn

[Unit] 
Description=gunicorn daemon 
After=network.target 

[Service] 
User=ubuntu 
Group=www-data 
WorkingDirectory=/home/ubuntu/webapps/kenyabuzz 
ExecStart=/home/ubuntu/djangoenv/bin/gunicorn --workers 10 --bind unix:/home/ubuntu/kenyabuzz/kb.sock kb.wsgi:application 

[Install] 
WantedBy=multi-user.target 

UPDATE

Запуск gunicorn использованием gunicorn kb.wsgi:application --bind 0.0.0.0:8001 возвращает

WSGI without exception 

kb.wsgi файл не существует и это может быть проблемой

+0

это здесь, что ваш gunicorn конфигурации должен быть размещен. Также попробуйте запустить пулемётчик вручную без использования systemd – e4c5

+0

вы можете поделиться командой для запуска –

+0

Ответ, который вы получили, показывает, как запустить его (не учитывать ExcecStart = part) Обновить вопрос с ошибками, которые у вас есть – e4c5

ответ

1

It кажется проблемой в вашей команде /etc/systemd/system/gunicorn.service ExecStart, попробуйте запустить ту же команду из командной строки, чтобы устранить ее.

ExecStart пример:

ExecStart=/home/user/Virtualenvs/app_virtualenv/bin/gunicorn --workers 3 --bind unix:/var/local/django/app.sock app.wsgi:application 

Вам может понадобиться также настроить для пользователя, группы и WorkingDirectory для службы:

[Service] 
User=yourAppUser 
Group=yourAppGroup 
WorkingDirectory=YourAppWD(where manage.py is located) 
ExecStart=... 
+0

обновленный вопрос для включения настроек службы –

+0

Должен быть файл wsgi.py внутри вашего приложения dir (kb) попробуйте запустить его из каталога, где находится manage.py, 'gunicorn -workers 3 --bind unix : kb.sock kb.wsgi: application' –

+0

вы должны получить такой вывод: '$ gunicorn cpc.wsgi: application -bind unix: kb.sock' ' [2017-01-31 14:34:38 ​​+ 0000] [5842] [INFO] Запуск стрелкового оружия 19.6.0' '[2017-01-31 14:34:38 ​​+0000] [5842] [INFO] Прослушивание: unix: kb.sock (5842)' ' [2017-01-31 14:34:38 ​​+0000] [5842] [INFO] Usin g worker: sync' '[2017-01-31 14:34:38 ​​+0000] [5847] [INFO] Загружаемый рабочий с pid: 5847' –