![我可以在 apache virtualHost 指令中仅将主机名作为 serverName 吗?](https://linux22.com/image/1522934/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%20apache%20virtualHost%20%E6%8C%87%E4%BB%A4%E4%B8%AD%E4%BB%85%E5%B0%86%E4%B8%BB%E6%9C%BA%E5%90%8D%E4%BD%9C%E4%B8%BA%20serverName%20%E5%90%97%EF%BC%9F.png)
我正在尝试在 Linux 机器上的 Apache 2.4 中配置虚拟主机。
假设我的盒子的主机名是:
$> hostname
nyfedev01
它的 fqdn 是
$> hostname --fqdn
nyfeddev01.ny.miorg.com
其 IP 地址为 10.193.91.225
现在在 apache 的 httpd.conf 文件中,我可以像下面这样将 virtualHost ServerName 的值指定为主机名值吗?
<VirtualHost *:8000>
ServerName nyfedev01
DocumentRoot "path/to/files/to/serve"
</VirtualHost>
我想在我的浏览器中访问它:http://nyfedev01:8000/ 我想使用此 URL 加载一组不同于默认 URL 的文件http://nyfedv01/。
答案1
你能吗?嗯,问题不在于你是否能,而是你应该。
假设你将拥有多个虚拟主机,当你在浏览器中输入 URL 时,例如http://nyfedev01你的浏览器会发送特定的请求标头被称为“主持人“,其中将包括 nyfedev01,这是 Apache HTTPD 读取的内容,以了解必须将此请求传递到哪个虚拟主机,猜猜你必须在哪里定义这个值?你猜对了,服务器名称
所以是的,我们非常鼓励您在要使用的每个虚拟主机的服务器名指令中定义要使用的主机名,它可以是本地机器名、公共 URL,甚至是 ip(如果您要在浏览器中调用 ip)。
注意:只需考虑名称解析就取决于您,因此您必须为您的 http 客户端提供方法,以便能够正确解析这些名称以指向 http 服务器的正确 IP。