Django 与 Apache 和 Nginx

Django 与 Apache 和 Nginx

我有一个 Web 服务器,它目前在 Apache 中运行,并带有一些虚拟主机……我想在这个服务器上部署我的 Django 应用程序。但是,我想使用 Nginx。(我现在无法将所有虚拟服务器迁移到 Nginx)。所以我的问题是……我可以让 Apache 和 Nginx 在同一台服务器上运行吗?我该怎么做?我有一个特定的主机名(虚拟主机),我的 Django 应用程序将“回答”。

谢谢,

答案1

这里有一个部署研讨会他们做的事情正是你想要的(除了他们不使用虚拟主机)

总结一下,他们采用了轻量级方法,其中 nginx 接收第一个请求并将其代理到 apache 或响应错误。他们还谈到了其他内容,例如数据库复制、结构等。非常值得一看

答案2

让 nginx 监听与 Apache 不同的端口,并(假设 Apache 是你的主服务器)创建 VirtualHost,代理请求到 nginx。但我认为这不是最好的解决方案——你必须将 Django 连接到带有 FastCGI 的 nginx(或类似的东西),你将得到三个服务器(Apache、nginx、发表于 2018-07-23),而不是只有一个(带有 mod_wsgi 的 Apache)。

答案3

如果可能的话,我相信最好把它放在nginx前面 - 例如让它在端口 80 上应答。配置它,以便它处理所有非 Django 请求,包括图像、CSS、JS 等。它非常轻量级并且速度极快。nginx不直接支持任何脚本环境(这就是它如此小巧和快速的原因),因此任何想要/需要 Apache 环境的东西都可以通过 FastCGI 处理。

WebFaction(一家托管公司,我是其满意的客户)就是这样做的,而且我已经非常对共享托管环境中的 Django 网站的性能印象深刻。

相关内容