使用uWSGI在apache上运行django应用程序

时间:2012-03-30 05:31:12

标签: django apache nginx uwsgi

我想使用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

1 个答案:

答案 0 :(得分:1)

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

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

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

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