虚拟主机问题

虚拟主机问题

我曾经在中添加虚拟主机没有问题httpd.conf

现在将虚拟主机拆分成单独的文件后,出现了问题:我只能显示 sites-enabled 中的第一个虚拟主机。最终,我找到了一个我不喜欢的解决方案,它在我的本地 Linux 机器上运行,但在我的 Amazon AWS Ubuntu 服务器上却不行。(我不喜欢它的原因是,我想通过制作单独的文件来实现,就像指南中说的那样,尽量减少输入错误时出现的潜在问题,并且我希望它在本地和远程都能工作。)

这是我在本地完成的工作:我在文件末尾添加了以下内容apache2.conf(从http://www.techstaty.com):

<VirtualHost *:80>
ServerName example1
DocumentRoot /var/www/example1
ErrorLog /var/www/logs/error_log
CustomLog /var/www/logs/custom common
</VirtualHost>

<VirtualHost *:80>
ServerName exampletwo
DocumentRoot /var/www/exampletwo
ErrorLog /var/www/logs/error_log
CustomLog /var/www/logs/custom common
</VirtualHost>

更新/etc/hosts文件:

127.0.0.1 localhost example1 exampletwo 

工作正常。

我不喜欢它的原因是我不明白为什么不把它们放在单独的文件中sites-available,然后a2ensite example1,同上exampletwoa2dissite default然后重新启动服务器,这不会使我的两个虚拟主机工作。我读到,如果无论你请求哪个主机,你总是得到第一个按字母顺序排列的虚拟服务器,服务器就会感到困惑。

那么我该如何测试以找出问题所在?为什么它可以在我的两个本地 Ubuntu 机器(12.10 和 12.04)上运行,但在 Amazon AWS Ubuntu 12.04 实例上却不行?

apache2ctl configtest说:Syntax OK。重新启动后apache2ctl graceful没有显示任何错误。我还检查了访问和错误日​​志,但没有获得任何见解。

我也尝试过:a2enmod vhosts_alias但没什么区别。(我认为我的问题出现在有人尝试:www.ex... 而不是:example1 之前。)

答案1

这在 Rackspace 上对我有用。要将两个域设置为单独的虚拟主机。我将虚拟主机属性修改为

<VirtualHost example1:80>
ServerName example1
DocumentRoot /var/www/example1
ErrorLog /var/www/logs/error_log
CustomLog /var/www/logs/custom common
</VirtualHost>

同样,我将第二个虚拟主机编辑为 exampletwo:80

如果这不起作用,您也可以尝试在 ports.conf 中添加 NameVirtualHosts。

相关内容