【问题标题】:Run django application on apache with uWSGI使用 uWSGI 在 apache 上运行 django 应用程序
【发布时间】:2012-04-13 19:30:03
【问题描述】:

我想使用 apache 和 uWSGI 运行我的 django 应用程序。所以我安装了使用worker_module的apache。当我最终运行我的应用程序并使用 httperf 测试其性能时,我注意到系统只能同时为一个用户提供服务。奇怪的是,当我使用与 nginx 相同的命令运行 uWSGI 时,我可以为 97 个并发用户提供服务。有没有可能是apache运行的这么慢?

我的 apache 配置看起来像(最重要的元素 - 现存的设置是默认的):

<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      25
    MaxClients           63
    MaxRequestsPerChild   0
</IfModule>
...
<Location />
    SetHandler uwsgi-handler
    uWSGISocket 127.0.0.1:8000
</Location>

我使用以下方式运行 uwsgi:

uwsgi --socket :8000 --chmod-socket --module wsgi_app --pythonpath /home/user/directory/uwsgi -p 6

【问题讨论】:

    标签: django apache nginx uwsgi


    【解决方案1】:

    我建议你把 Apache 放在 Nginx 后面。例如:

    • 将 Apache 绑定到 127.0.0.1:81
    • 将 nginx 绑定到 0.0.0.0:80
    • 制作 Apache 应该服务的 nginx 代理域

    这不是您问题的直接答案,但恕我直言,这是最好的解决方案:

    • 最佳性能
    • Apache 的最佳保护
    • 允许逐步将 Apache 网站迁移到 Nginx(uWSGI 现在支持 PHP ...),再次获得最佳性能和安全性

    【讨论】:

    • 非常有用的答案,但我只是想检查哪个 http 服务器更适合为 django 应用程序提供服务。我很困惑,因为我认为 apache 至少是 nginx 的一半。
    • 对于 apache,mod_wsgi 比 Apache 的 uwsgi 更老,因此更成熟。但是,您可能想在 uwsgi irc 频道或邮件列表上询问以联系社区以获取有关 uwsgi 的答案。
    猜你喜欢
    • 1970-01-01
    • 2012-03-17
    • 2016-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 2016-04-13
    • 1970-01-01
    相关资源
    最近更新 更多