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

标签 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

最佳答案

我建议您将 Apache 置于 Nginx 后面。例如:

  • 将 Apache 绑定(bind)到 127.0.0.1:81
  • 将 nginx 绑定(bind)到 0.0.0.0:80
  • 创建 Apache 应该服务的 nginx 代理域

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

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

关于django - 使用 uWSGI 在 apache 上运行 django 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9937450/

相关文章:

django - 在特定日期打开/关闭 Django 应用程序

python - 模板不显示图像

android - Apache Cordova Facebook 插件(最新版本/当前主控)在初始化时使我的 Android 应用程序崩溃

java - 我的项目没有部署,它有一些 spring jars 的问题或其他没有得到它,帮助我

ruby-on-rails - 使用 capistrano(rbenv) 部署时出现捆绑错误

javascript - Ajax/jQuery Django 刷新元素类

python - Django 和 Gunicorn 中的错误记录

apache - htaccess 规则 (mod_rewrite) 转换为 web.config 规则

redirect - Cloudflare 和 nginx : Too many redirects

python - flask + nginx + uwsgi_response_sendfile_do() 超时