这:
<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地址。
如果您运行的是IPV4和IPV6,我不相信域名会导致所有可用地址被绑定。相同,如果域名绑定到多个地址(地理位置或循环)
因此,虽然它现在可能有效,但它可以在任何时候打破所有这些假设不再(全部)是真正的
简而言之:绑定到*
或_default_
并使用ServerName(或别名),因为一旦请求到达您的Web服务器,您无论如何都需要处理它。