如何使用uwsgi_脚本在nginx上将挂架应用程序动态添加到uwsgi进程?

如何使用uwsgi_脚本在nginx上将挂架应用程序动态添加到uwsgi进程?,nginx,pylons,dynamic,uwsgi,Nginx,Pylons,Dynamic,Uwsgi,我已使用以下工具在nginx+uwsgi上成功部署了一个单塔应用程序: uwsgi --paste config:/var/www/sites/helloworld/development.ini --socket :3031 -H /var/www/virtualenv 然而,我使用nginx虚拟主机3个网站 基于unbit上uwsgi主站点的uwsgi/wiki/DynamicApps页面,我可以向uwsgi动态添加应用程序,而无需为3个独立端口上的3个主进程创建3个独立的uwsgi in

我已使用以下工具在nginx+uwsgi上成功部署了一个单塔应用程序:

uwsgi --paste config:/var/www/sites/helloworld/development.ini --socket :3031 -H /var/www/virtualenv
然而,我使用nginx虚拟主机3个网站

基于unbit上uwsgi主站点的uwsgi/wiki/DynamicApps页面,我可以向uwsgi动态添加应用程序,而无需为3个独立端口上的3个主进程创建3个独立的uwsgi init.d脚本

我的nginx虚拟主机配置的设置与教程中的一样,但我对UWSGI_脚本值有问题。我将其设置为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)

这对我来说是这样的:

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
}

然后使用--vhost[--no site]启动uwsgi,记住在development.ini中将debug设置为false如果您使用主进程和工作进程启动uwsgi,除了将应用程序名称从wsgi_app重命名为application之外,这也是uwsgi将要寻找的

它对我来说是这样的:

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
}
然后使用--vhost[--no site]启动uwsgi,记住在development.ini中将debug设置为false如果您使用主进程和工作进程启动uwsgi,那么除了将应用程序名称从wsgi_app重命名为application之外,uwsgi还将寻找这个名称