@zkweb

Как исправить ошибку с Uwsgi?

Ubuntu 15 server
Nginx 1.8
Uwsgi 2.0

Из консоли командой: uwsgi --ini test.ini django успешно запускается!!!

Листинг файла test.ini

[uwsgi]
    http-socket = :8086
    plugins = python
    virtualenv = /home/adminko/virtualenv/test/
    chdir = /home/adminko/projects/test/
    env = DJANGO_SETTINGS_MODULE=test.settings
    module = django.core.wsgi:get_wsgi_application()


Останавливаю test.ini и понятно сайт недоступен. Это понятно.

Сейчас не могу понять как запустить сайт с помощью uwsgi+nginx.

/home/adminko/projects/test - здесь лежит проект джанго (manage.py)

в этой же директории (не знаю правильно-ли это):
  1. termofort.ini
  2. uwsgi.sock (этот фаил создал руками, точно про него не понял)


/home/adminko/virtualenv/test - виртуальное окружение
  1. bin
  2. include
  3. lib
  4. local


Конфигурационный файл nginx:

server {
    listen   8080;
    server_name   test;
    error_log    /home/adminko/projects/test/logs/nginx.error.log;

    location /static/ {
        alias    /home/adminko/projects/test/files/static/;
    }
    location /media/ {
        alias    /home/adminko/projects/test/files/media/;
    }

    location / {
        include    uwsgi_params;
       uwsgi_pass      unix:/home/adminko/projects/test/uwsgi.sock;
    }
}


В итоге nginx не может запустить сайт django. Ошибка 502
В логах nginx`a

2015/08/25 16:03:16 [error] 2434#0: *1 connect() to unix:/home/adminko/projects/test/uwsgi.sock failed (111: Connection refused) while connecting to upstream, client: 172.20.1.68, server: test, request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:/home/adminko/projects/test/uwsgi.sock:", host: "172.20.1.222:8080", referrer: "172.20.1.222:8080"

Как исправить, скажите пожалуйста?
Все мануалы уже прочитал что и где.
И еще вопрос мне же не нужно через консоль снова запускать команду uwsgi --ini test.ini, это же уже сделает nginx (или я не правильно думаю)

Спасибо!
  • Вопрос задан
  • 1965 просмотров
Пригласить эксперта
Ответы на вопрос 1
Bahusss
@Bahusss
Python Master
При такой конфигурации nginx ваш test.ini должен выглядеть так:
[uwsgi]
    socket = /home/adminko/projects/test/uwsgi.sock
    plugins = python
    virtualenv = /home/adminko/virtualenv/test/
    chdir = /home/adminko/projects/test/
    env = DJANGO_SETTINGS_MODULE=test.settings
    module = django.core.wsgi:get_wsgi_application()

Насчет nginx'a вы думаете неправильно - за вас uwsgi он не запустит и будет отдавать вам 502 код. Если вам мешает постоянно открытая консоль с запущенных uwsgi - запустите его как демон с помощью параметра daemonize, добавьте в конфиг:

daemonize = [путь к лог файлу uwsgi]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы