我有一台 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
答案2
是的。这就是基于命名的虚拟主机的用途。 http://httpd.apache.org/docs/current/vhosts/name-based.html