【发布时间】:2011-11-23 20:09:50
【问题描述】:
我有一个 Django 应用程序在 Nginx 后面的 2 个负载平衡 mod_wsgi/Apache 服务器后面运行(静态文件、反向代理/负载平衡)。
每隔几天,我的网站就会完全没有响应。我的猜测是,一堆客户端正在请求被阻止的 URL。
这是我的配置
WSGIDaemonProcess web1 user=web1 group=web1 processes=8 threads=15 maximum-requests=500 python-path=/home/web1/django_env/lib/python2.6/site-packages display-name=%{GROUP}
WSGIProcessGroup web1
WSGIScriptAlias / /home/web1/django/wsgi/wsgi_handler.py
我尝试过仅使用单个线程和更多进程,以及更多线程和单个进程。我尝试的几乎所有事情迟早都会导致页面加载超时。
对我可以尝试什么有什么建议吗?如果可以解决问题,我愿意尝试其他部署选项。
另外,除了 Apache 状态模块之外,还有更好的方法来监控 mod_wsgi 吗?我一直在打:
curl http://localhost:8080/server-status?auto
观察忙碌的工作人员的数量作为我是否即将陷入麻烦的指标(我假设我拥有的工作人员越多,当前发生的阻塞操作就越多)。
注意:其中一些请求是针对我为应用程序托管的 REST Web 服务的。以某种方式通过 Nginx 限制该 URL 位置是否有意义?
【问题讨论】:
-
你没有使用
DEBUG=True对吗?
标签: django apache nginx mod-wsgi