我已经成功地在nginx + uwsgi上部署了一个单独的pylons应用程序,使用:
uwsgi --paste config:/var/www/sites/helloworld/development.ini --socket :3031 -H /var/www/virtualenv
然而,我使用nginx来虚拟主机3站点。
基于this tutorial和unbit上的uwsgi主站点的uwsgi/wiki/DynamicApps页面,我可以动态地将应用程序添加到uwsgi,而不必为3个独立的端口上的3个主进程创建3个独立的uwsgi init.d脚本。
我的nginx虚拟主机配置的设置与本教程中的设置相同,但我的UWSGI_SCRIPT值有问题。我将其设置为app.wsgi (位于/var/www/site/helloworld/app.wsgi)。脚本代码为:
from paste.deploy import loadapp
wsgi_app = loadapp('config:/var/www/sites/helloworld/development.ini')
但是我找不到任何关于这个脚本的直接信息。它是应该被命名为app_wsgi.py,还是完全不同的代码?它应该放在哪里呢?当我访问站点时,我得到:“wsgi Error -wsgi application not found",然后我在我的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)
发布于 2011-01-29 12:19:12
它对我的影响是这样的:
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,如果你用主进程和辅助进程启动uwsgi,记得在你的development.ini中将debug设置为false,除了将你的应用程序名从wsgi_app重命名为应用程序之外,这也是uwsgi要寻找的
https://stackoverflow.com/questions/3481306
复制相似问题