在切诺基和uwsgi上部署烧瓶

时间:2011-02-27 04:29:33

标签: python flask cherokee uwsgi

我正在尝试部署我使用切诺基和uwsgi开发的烧瓶网络应用程序。我有切诺基和uwsgi安装和工作(我认为uwsgi工作),但当我在切诺基配置应用程序时,我只是得到一个错误说uWSGI Error wsgi application not found。我使用了一个xml配置文件(我认为你需要使用切诺基),其中包含:

<uwsgi>
    <pythonpath>/srv/mobile-site/app/</pythonpath>
    <app mountpoint="/">
        <module>mobilecms</module>
        <callable>app</callable>
    </app>
</uwsgi>

我的烧瓶应用程序显然位于/srv/mobile-site/app/文件夹中,主脚本为mobilecms.py

此文件有问题吗?许可错误会导致此吗?在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

在投入生产之前,请始终尝试在没有网络服务器的情况下部署uWSGI。

uwsgi -x <xmlfile>

它会打印很多信息/错误

答案 1 :(得分:2)

罗伯托的建议很好;它将有助于诊断错误发生的位置(即它是uWSGI还是切诺基)。

我最近也努力让uWSGI和切诺基一起工作。我最终手动在切诺基配置了uWSGI源:

  • 在Cherokee Admin中,在“Sources”选项卡下,添加一个昵称为“uWSGI Source”且套接字“/tmp/foo.sock”的新来源
    • 将类型更改为“Local Interpreter”
    • 在口译员字段中,输入:/usr/local/bin/uwsgi -x /path/to/uwsgiconfig.xml
  • 在虚拟服务器的规则管理中,单击以添加新的行为规则。
    • 选择“目录”类型的手动配置,路径为“/”
    • 将处理程序设置为“uWSGI”
    • 滚动到底部并为平衡器设置“Round Robin”
    • 添加“uWSGI来源”信息来源
  • 保存更改并重新启动Cherokee

在我的uWSGI配置文件中,我有类似的东西(适合你的例子):

<uwsgi>
    <chdir>/srv/mobile-site/app/</chdir>
    <wsgi-file>/srv/mobile-site/app/mobilecms.py</wsgi-file>
    <callable>app</callable>

    <socket>/tmp/foo.sock</socket>
    <chmod-socket>666</chmod-socket>

    <master />
    <processes>1</processes>

    <disable-logging /><!-- Errors are still logged; this just disables request logging which Cherokee takes care of -->

    <vacuum />
    <no-orphans />
</uwsgi>

请注意,切诺基uWSGI向导不接受此作为有效配置文件(因此手动配置)。