Django VirtualHosting:如何在一个 VPS 上托管具有不同域的多个 django 项目
Posted
技术标签:
【中文标题】Django VirtualHosting:如何在一个 VPS 上托管具有不同域的多个 django 项目【英文标题】:Django VirtualHosting: How to host multiple django projects with different domains on one VPS 【发布时间】:2016-01-14 04:52:05 【问题描述】:因为我听说您可以在一个 VPS 上托管多个网站,所以我尝试使用 django(未安装在 VEnvironment 中)以及使用 mod_wsgi 和 apache 来实现它。
当我第一次得到这个 VPS 时,我是真正开始使用 django,并且按照 django 官方网站的一些教程,我得到它现在可以工作了,问题如下 -
1.不同的教程假设 apache 有不同的目录结构 在我从 digiocean 购买的 Ubuntu 服务器上安装 apache 后得到的结构是这样的。
/etc/apache2/
|-- apache2.conf
| `-- ports.conf
|-- mods-enabled
| |-- *.load
| `-- *.conf
|-- conf-enabled
| `-- *.conf
`-- sites-enabled
`-- *.conf
按照教程(官方),我的第一个项目(site1)开始工作。 现在我有了这个新站点,它也是基于 django 的。所以我想也许有一种不错的方式将它们都托管在一个引擎盖下。
2。 apache中的许多.conf文件
我知道这听起来像是一个蹩脚的问题,但是当我使用 mod_wsgi 在 apache 上阅读 django 时,我发现说明我必须在 httpd.conf中进行更改> 文件让我想知道为什么站点可用文件夹中有任何虚拟主机文件。
3.托管两个站点之间的区别说 (.php ) 和 django
我读到有很多关于 VirtualHost 配置下的 DocumentRoot 配置的参考资料,而我的所有文档都在
/home/django/
如果托管 django 以外的两个站点之间存在差异,也许有人会很乐意回答。
现在进入正题
一个。我应该将我的项目文件夹移动到 /var/www/ 如果是这样为什么以及符号链接会起到作用
b.正如 django 教程建议的那样,我应该在 httpd.conf 中配置 WSGISCriptAlias 和其他设置,我应该这样做还是应该做什么,这对我来说非常重要,要理解也许有人可以指出我可以了解它的方向.
c。我有一个系统范围的 django 安装在虚拟主机中会产生这种效果。
d。我应该使用不同的端口来运行不同的网站吗?如果是,我将如何配置。
e。建议我使用 apache 和 mod_wsgi 测试的方法(请)
提前致谢。
【问题讨论】:
【参考方案1】:我会尽量简洁。
-
您真的需要阅读docs(甚至是this),而且您阅读的越多越好,因为您不会在这里得到关于如何在 apache 上服务 django-sites 的明确答案详细信息和示例。
你的项目是否上线取决于你,换句话说,它不应该放在
/var/www/
为了同时拥有 2 个以上的 django 项目,请尝试使用单独的 wsgi 守护进程。有一个look。这将不允许不同的应用程序相互干扰。然而,我建议在 /etc/apache2/sites-available
文件中为您的项目(作为虚拟主机)设置配置(通常每个文件一个)。
我强烈建议您不要使用全局安装的 django,而是为每个项目单独设置(使用 venv 或以其他方式取决于您)。这样您就可以使升级包和 django 的过程更加安全。
【讨论】:
我只改变了几行就让它工作了。我在两个虚拟主机块中都添加了 ServerAlias 并且它起作用了。以上是关于Django VirtualHosting:如何在一个 VPS 上托管具有不同域的多个 django 项目的主要内容,如果未能解决你的问题,请参考以下文章
Django:如何在 Django 表单中多次包含相同的字段?
Django:如何告诉 Django 它应该在哪里寻找应用程序?