Apache VirtualHost Syntax



这:

<VirtualHost subdomain.example.com:443> 
... 
ServerName subdomain.example.com
...
</VirtualHost>

工作。通常您会看到*:443或<IpAdress>:443

为什么子域.example.com:443有效?

它之所以有效,是因为subdomain.example.com:443是一个有效的文档值:

<VirtualHost addr[:port] [addr[:port]] ...> ... </VirtualHost>

Addr可以是以下任意一个,后面可以有冒号和端口号(或*)

  • 虚拟主机的IP地址
  • 虚拟主机IP地址的完全限定域名(不推荐)
  • 字符*,用作通配符并与任何IP地址匹配
  • 字符串_default_,它是*

我知道不建议使用域名,因为它可能需要DNS查询,并且实际的过滤是在IP地址上完成的(我只是猜测,对此持谨慎态度),但它仍然有效。

请注意,这不会影响Apache将侦听的本地IP地址和端口。它只允许在需要时加快虚拟主机解析并简化设置

注意:

<VirtualHost subdomain.example.com:443> 

如果subdomain.example.com解析为虚拟主机绑定的IP地址(例如,由部署Apache的服务器处理的IP地址),则有效。

如果你在另一台机器上运行反向代理,那么这个指令会告诉Apache httpd绑定到它所在机器上不可用的IP地址。

如果您运行的是IPV4IPV6,我不相信域名会导致所有可用地址被绑定。相同,如果域名绑定到多个地址(地理位置或循环)

因此,虽然它现在可能有效,但它可以在任何时候打破所有这些假设不再(全部)是真正的

简而言之:绑定到*_default_并使用ServerName(或别名),因为一旦请求到达您的Web服务器,您无论如何都需要处理它。

相关内容

  • 没有找到相关文章

最新更新