我有轻微的apache问题。它可能是非常小的东西,我只是在看它。这就是场景。我有一个Ubuntu 10.04服务器设置与2个网站。在此之前,我有一个站点,我通过IP地址访问它。我刚刚添加了第二个站点,这个站点有一个域名,我在sites-available目录中创建了一个新文件。带有指向已启用网站的目录的链接。
第一个站点(我通过IP访问的站点)配置看起来像这样:
#Default
<VirtualHost *:80>
DocumentRoot /var/www
......etc
然后另一个配置是这样的:
#Secondary
<VirtualHost TheDomainName.com:80>
DocumentRoot /var/www/thedomainname
.......etc
如果你们需要我发布完整的配置文件,我会。为什么IP地址请求落到DomainName配置?是因为它们是相同的IP地址吗?我如何区分这两者?
如果我尝试在第一个“默认”配置而不是“*”上设置IP地址,则此站点仅起作用,我永远无法访问其他“辅助”站点。
感谢。
答案 0 :(得分:1)
您是否在虚拟主机指令中使用ServerName和ServerAlias?
<VirtualHost *:80>
ServerName www.domain.com
ServerAlias domain.com domain.net www.domain.net
另一件事,您可能正在这样做,但在进行更改后重新启动apache
httpd restart
(或类似的东西.. /etc/init.d/apache2 restart或lighttpd如果你正在使用它)
答案 1 :(得分:1)
除非您使用name based virtual hosts,否则不同的网站无法共享IP和端口组合。手册中的例子如下:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
</VirtualHost>
<VirtualHost *:80>
ServerName www.otherdomain.tld
DocumentRoot /www/otherdomain
</VirtualHost>
使用此功能时,未知域名会映射到配置中找到的第一个<VirtualHost>
。
答案 2 :(得分:0)
对于site1:
<VirtualHost *:80>
ServerName oink.domain.com
DocumentRoot /var/www
...
对于site2:
<VirtualHost *:80>
ServerName blah.domain.com
DocumentRoot /var/www/thedomainname
...