LINUX.ORG.RU

[nginx][uwsgi][django] uwsgi_param UWSGI_ENV DJANGO_SETTINGS_MODULE=settings;


0

1

кто может подтвердить, что я не схожу с ума.

uwsgi -s /tmp/uwsgi.sock --master

nginx.conf:

server {
    listen 80;
    server_name localhost;
    location / {
        uwsgi_pass unix:/tmp/uwsgi.sock;
        include uwsgi_params;
        set $home /var/www/site;
        uwsgi_param UWSGI_CHDIR $home;
        uwsgi_param UWSGI_PYHOME $home;
        uwsgi_param UWSGI_ENV DJANGO_SETTINGS_MODULE=settings;
        uwsgi_param UWSGI_MODULE django.core.handlers.wsgi:WSGIHandler();
        root $home/media;
    }
}

окружение настроено и джанговский сайт сам по себе работает. вот как ругается uwsgi при обращении к нему через нгинкс:

ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

ШОЗАНАХ! все UWSGI_ должны работать. из консоли uwsgi --env... работает. через скрипт или через ini конфиг работает. а вот UWSGI_ENV не хочет. в гугле нашёл только пару примеров, но они не дали озарений. все примеры nginxa и uwsgi используют свой скрипт типа:

# site.py
import os, sys
sys.path.append(os.path.dirname(__file__))
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
c «uwsgi_param UWSGI_MODULE site;» в конфиге нгинкса. а почему по-моему не работает? сам же «django.core.handlers.wsgi:WSGIHandler()» стартует, ему только переменной не хватает. а UWSGI_ENV её не ставит. а ведь должен, собака.


uwsgi_param UWSGI_SETENV DJANGO_SETTINGS_MODULE=settings;

и обязательно запускать uwsgi c --reload-os-env

fuxter ()

Лучше поставь старый добрый apache с mod_wsgi

Тоже долго билась с uwsgi + nginx , так и не удалось завести. А еще у uwsgi обильная но безобразная документация. Надеюсь они доведут свое детище до ума.

yanka ★★ ()

Re: Лучше поставь старый добрый apache с mod_wsgi

всё на мази. получил огромное удовольствие от проделанного квеста. документация конечно до джанговской не дотягивает, но по-моему, nginx + uwsgi --master + куча django-проектов  — очень классная няшка -_-

а там ведь ещё и кластеринг и мессажинг и кэшинг и ещё много чего вкусного.

а апач я уже года три не трогал. брр...

fuxter ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.