Django VirtualHosting:如何在一个主机上托管具有不同域的多个 Django 项目 VPS

Django VirtualHosting: How to host multiple django projects with different domains on one VPS

因为我听说您可以在一个 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 文件让我想知道为什么 sites-available 文件夹中有虚拟主机文件。

3。托管两个网站之间的区别说 (.php ) 基于和 django

我看到有很多关于 VirtualHost 配置下的 DocumentRoot 配置的参考资料,而我的所有文档都在

/home/django/

如果除了 django 之外托管两个站点之间存在差异,也许有人会好心回答。

进入正题

一个。我应该将我的项目文件夹移动到 /var/www/ 如果是这样为什么以及符号链接是否可以解决问题

b。正如 django 教程所建议的那样,我应该在 httpd.conf 中配置 WSGISCriptAlias 和其他设置,我应该这样做还是应该做什么,这对我来说非常重要,了解也许有人可以指出我可以学习的方向关于它。

c。我在系统范围内安装了一个 django,它在虚拟主机中起到了这种作用。

d.我应该对 运行 不同的网站使用不同的端口吗?如果是,我将如何配置它。

e。向我推荐一种经过 apache 和 mod_wsgi(请)

测试的方法

提前致谢。

我会尽量简洁。

  1. 你真的需要阅读 docs (and even this) 并且你读得越多越好,因为你不会在这里得到关于如何在 apache 上提供 django 站点的明确答案以及详细信息和示例。
  2. 你的项目是否存在取决于你,换句话说,它不一定要放在 /var/www/
  3. 为了同时容纳 2 个以上的 django 项目,请尝试使用单独的 wsgi 守护进程。有一个look。这将不允许不同的应用程序相互干扰。然而,我建议在 /etc/apache2/sites-available 个文件(通常每个文件一个)中为您的项目(作为虚拟主机)设置配置。
  4. 我强烈建议您不要使用全局安装的 django,而是为每个项目单独使用(使用 venv 或其他方式取决于您)。这样你将使升级包和 django 的过程更加安全。