在 Nginx 后面部署 Python(包括 Django)的最佳方法是什么?
答案1
官方django 文档说 apache 和 mod_wsgi 是将 django 投入生产的推荐方法。
我们使用 nginx 代理运行 mod_wsgi 的 apache 来为我们的 django 网站提供服务。我们让 apache 监听127.0.0.1
并用于proxy_pass
将请求传递给 Apache。nginx 维基百科有很多例子。
我也听到过一些关于gunicorn. (你仍然可以proxy_pas
在 nginx 中使用 s)
答案2
我在我的一个网站(基于 Django 构建)上为此使用了 FastCGI,nginx 和 Django 都可以原生地执行 FastCGI。另外:我对各种方法进行了压力测试:nginx 带 FastCGI、nginx 带 Apache 然后是 FastCGI、nginx 带 Apache 然后是 mod_wsgi,甚至 nginx 带 Apache 然后是 mod_python。对于实际应用程序来说,性能几乎相同,因此我选择了 nginx 带 FastCGI 而不带 Apache 以节省一些 RAM。