我想在我的 VPS 上运行一些 Django 网站,并使用 nginx 作为前端。我在使用mod_python
Apache 时遇到了一些问题,每当流量开始增加时,网站就会开始出错,因为它只使用所以每个请求需要很多 RAM。所以我做了一些研究,发现mod_python
对于小型 VPS 来说,这确实不是最好的选择。
我的设置是使用 nginx 提供静态文件(javascript、css、图片)并使用 memcached 来缓存 Apache 生成的页面,从而大幅减少对 Apache 后端的请求,但这是仍然运行mod_python
,昨天仍然有一些人说他们无缘无故地收到 500 个错误。
我现在想做的是使用 FastCGI 来运行 Django,我读到它可以用更少的 RAM 处理更高的流量,但它的配置对我来说有点难以理解;我对一些术语根本不了解。我主要考虑的是这些选项:
maxspare=NUMBER max number of spare processes / threads
minspare=NUMBER min number of spare processes / threads
maxchildren=NUMBER hard limit number of processes / threads
method=IMPL prefork or threaded (default prefork)
任何帮助来确定我应该设置这些为什么大大非常感谢。我还想知道它提到的这些进程是否与 nginx 工作进程有关。该服务器托管 4 个网站,通常每天处理几千次点击,但它们都倾向于在同一时间受到大多数流量的冲击,这就是问题开始的地方。
另外,我读到过一些关于使用龙卷风作为 Django 的 WSGI 服务器...这可能是更好的解决方案吗?谢谢!
答案1
我知道这是一个老问题,但以防其他人遇到这个问题 - 目前在 apache 上设置 Django 的推荐方法是使用 mod_wsgi:
使用 Apache 和 mod_wsgi 部署 Django 是将 Django 投入生产的推荐方法。
mod_wsgi 是一个 Apache 模块,可用于托管任何支持 Python WSGI 接口的 Python 应用程序,包括 Django。Django 可与支持 mod_wsgi 的任何 Apache 版本配合使用。
https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/