Как динамически добавить приложения пилонов в процесс uwsgi на nginx с помощью UWSGI_SCRIPT? - PullRequest
1 голос
/ 14 августа 2010

Я успешно развернул одно приложение Pylons на nginx + uwsgi, используя:

uwsgi --paste config:/var/www/sites/helloworld/development.ini --socket :3031 -H /var/www/virtualenv

Однако я использую nginx для сайтов виртуального хоста 3.

На основе этого руководства и страница uwsgi / wiki / DynamicApps с главного сайта uwsgi на unbit, я могу динамически добавлять приложения в uwsgi без необходимости создавать 3 отдельных сценария uwsgi init.d для 3 основных процессов через 3 отдельных порта.

Мои конфигурации виртуальных хостов nginx настроены так же, как в учебном пособии, но у меня проблема со значением UWSGI_SCRIPT.У меня установлен app.wsgi (который находится по адресу /var/www/sites/helloworld/app.wsgi).Код сценария:

from paste.deploy import loadapp
wsgi_app = loadapp('config:/var/www/sites/helloworld/development.ini')

Но я не могу найти прямую информацию об этом сценарии.Предполагается, что он будет называться app_wsgi.py или другой код вообще?И где он должен быть расположен?Когда я захожу на сайт, я получаю: «Ошибка uWSGI - приложение wsgi не найдено», тогда я вижу это в моем файле uwsgi.log:

interpreter for app 0 initialized.
ImportError: No module named app.wsgi
[pid: 7287|app: -1|req: -1/24] XXX.XXX.XXX.133 () {48 vars in 782 bytes} [Fri Aug 13 18:41:22 2010] GET /page/view/0 => generated 46 bytes in 8 msecs (HTTP/1.1 500) 2 headers in 63 bytes (0 async switches on async core 0)

1 Ответ

1 голос
/ 29 января 2011

у меня получилось так:

location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:5000;
        uwsgi_param UWSGI_PYHOME /home/don/dev/envs/pylons; #this is my virtualenv
        uwsgi_param UWSGI_CHDIR /home/don/dev/envs/pylons/apps/helloworld; #so app.py can be found
        uwsgi_param UWSGI_SCRIPT app; # app.py: where i put loadapp code
        uwsgi_param SCRIPT_NAME ""; # this line is needed, don't know what it means
}

затем запустите uwsgi с --vhost [--no-site], не забудьте установить для debug значение false в вашем development.ini, если вы запускаете uwsgi с основными и рабочими процессами, кроме переименования имени вашего приложения из wsgi_app в приложение, это что будет искать uwsgi

...