Apache 2.4.6中的NameVirtualHost指令等效?

时间:2015-01-23 06:52:35

标签: apache centos

Overview of new features in Apache HTTP Server 2.4州:

  

NameVirtualHost指令:
  不再需要,现已弃用。

有人可以解释一下虚拟主机等效语法,以便在新版Apache中产生这种行为吗?


<VirtualHost 127.0.0.3:80>
    DocumentRoot /var/www/html3
    ServerName site3.com
</VirtualHost>

<VirtualHost 127.0.0.3:80>
    DocumentRoot /var/www/html4
    ServerName site4.com
</VirtualHost>

我向所有人道歉,但我已经销毁了这台服务器,因此无法提供配置文件:(

仅供参考我以前看过一个在线示例,它将服务器名称放在VirtualHost标头中,如下所示,这可能是问题所在,但我无法知道这一点,直到我有机会在某个时候测试它在将来/

<VirtualHost site3.com:80>
    DocumentRoot /var/www/html3
</VirtualHost>

2 个答案:

答案 0 :(得分:3)

您的配置是正确的,并且自动表现为&#34; NameVirtualHost 127.0.0.3:80"在场。如果http://site4.com似乎是默认的虚拟主机:

  • 确保您实际使用&#34; http://site4.com&#34;
  • 进行测试
  • 确认它不是浏览器缓存
  • 尝试使用命令行客户端
  • 确保磁盘上的内容确实不同

答案 1 :(得分:1)

我同意@covener。 Apache根据它为IP地址/端口组合检测到的有效虚拟主机块数量来启用SNI。最好在apache的官方文档中回答您的问题:

https://httpd.apache.org/docs/2.4/vhosts/details.html

但是,要获得完整的NameVirtualHost行为,请选择将流量路由到服务器的内部IP(在所有vhost配置块中使用相同的IP),或使用通配符(*):

<VirtualHost *:80>
<VirtualHost *:443>

我个人使用通配符语法,并且在我自己的服务器上具有大约10种不同的虚拟主机配置。

编辑: 我刚刚意识到这篇文章已有4年历史了。