使用 Apache 在一个 IP 上托管多个网站

使用 Apache 在一个 IP 上托管多个网站

我有一台 LAMP 服务器,它托管多个站点。该服务器有一个静态 IP 地址。我想要做的是将不同的域名指向不同的虚拟主机。例如:

域名 abc.com xyz.com

虚拟主机路径 /var/www/sites/abc /var/www/sites/xyz

我希望 abc.com 指向 /var/www/sites/abc 站点,让 xyz.com 指向 /var/www/sites/xyz 站点。

这可能吗?如果可以,从 Apache 和 DNS 配置的角度来看我需要做什么?

还值得注意的是我的主机是 Linode。

提前致谢!

答案1

DNS:设置每个域名指向相同的静态 IP 地址。无需其他操作。

Apache:打开基于名称的虚拟主机: NameVirtualHost *:80

然后对于每个虚拟主机:

<VirtualHost *:80>

        ServerName abc.com
        ServerAdmin <email address>

        DocumentRoot /var/www/sites/abc

        ErrorLog /var/log/apache2/abc/abc-error.log
        CustomLog /var/log/apache2/abc/abc-access.log combined

</VirtualHost>

虚拟主机不需要日志指令,但我喜欢为每个虚拟主机分别记录访问和错误,这可以让您实现这一点。(但是,请确保目录存在,否则 apache 将无法启动)。

此外,如果您只想在一个 IP 地址上启用虚拟主机,请将上面的替换*:80为。<ipaddress>:80

看:http://httpd.apache.org/docs/current/vhosts/更多信息...

答案2

是的。这就是基于命名的虚拟主机的用途。 http://httpd.apache.org/docs/current/vhosts/name-based.html

相关内容