Apache Web服务器,虚拟主机,子域和多个Web框架

我有一个网站www.mysite.com这是主要网站,我将使用该网站的Django网站框架

我也想有其他的子域名,如:

  • https://mail.mysite.com (由Zimbra处理)
  • http://admin.mysite.com (安装项目docker )
  • http://otherstuff.mysite.com (一个Symfony应用程序)

我想知道:

  1. 我可以做到这一点(使用Apache和子域来服务不同的应用程序)
  2. 什么是设置子域所需的步骤,并有不同的Web框架/应用程序共存

当然你可以做到这一点。

子域只是单独的VirtualHostconfiguration。 名字不重要。 即到Apache,mail.domain.com和mail.anotherdomain.com是不同的mail.domain.com和mail2.domain.com。

例如:

<VirtualHost 192.168.1.1:80> ServerName mail.mysite.com DocumentRoot /home/mysite.com/sites/mail/public_html ... </virtualHost> <VirtualHost 192.168.1.1:80> ServerName admin.mysite.com DocumentRoot /home/mysite.com/sites/admin/public_html ... </VirtualHost> ... 

等重复每个站点的VirtualHost部分。 DocumentRootpath是任意的。 它可以住在/var/www (在一些Linux系统上很常见),或者任何地方。 如果系统上只有一个域,并且您希望子域看起来更加独立(为了SuExec目的,不同用户拥有这些子域(从安全angular度来看这可能是可取的),您可以为每个域创build一个单独的用户,把它们放到自己的主目录中。 但是,主目录也是任意的,所以你可以有多个用户使用上面的Apacheconfiguration示例。 但是,如果他们不需要共享文件访问权限,您可能希望将其设置为/home/mail /home/admin /home/otherstuff

注意:如果您的系统具有SELinux或AppArmor,则DocumentRoots的位置可能会由您的操作系统或您正在使用的Apache软件包修复。 同样,如果使用SuExec,则通常会将该path编译为suexec二进制文件(在使用suexec-custom软件包时可以在Debian和Ubuntu上进行configuration),在CentOS上将其硬编码为/ var / www,除非您安装了另一个Apache自己构build或重buildApache)。 所以,除非你有理由select别人,否则使用默认path可能是最简单的。 然而,我喜欢用户住在/ home,所以我在CentOS系统上使用suexec设置为/ home的重新编译的Apache软件包。