为了避免缓存中毒,我被要求在我的 Apache Web 服务器上创建一个虚拟虚拟主机,以便所有伪造的请求(实际上与我的应用程序无关)都会转到虚拟虚拟主机。
以下是我当前的虚拟主机:
<VirtualHost *:*>
DocumentRoot "cache location"
ServerName myappname
</virtualHost>
我正在尝试创建一个虚拟虚拟主机,服务器名称为 *,缓存位置不同。这是我尝试的:
<VirtualHost *:*>
DocumentRoot "another cache location"
ServerName *
</virtualHost>
我如何测试我的虚拟主机配置是否有效,以及我是否需要修改我的配置?
答案1
据我所知,将 * 设置为 ServerName 只会与*
主机名的文字匹配,并且不会进行预期的通配符匹配...
您的虚拟虚拟主机,即 VirtualHost 条目,将响应任何与明确配置的任何特定域名不匹配的不合格请求,应该由第一个虚拟主机在您的配置中输入。
<VirtualHost *:80>
# This is the first and will handle anything that is not example.[com | net | org]
...
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
...
</VirtualHost>
<VirtualHost *:80>
ServerName example.net
...
</VirtualHost>
<VirtualHost *:80>
ServerName example.org
...
</VirtualHost>
这个答案的第二部分对默认VirtualHOST有一个合适的设置:https://serverfault.com/a/662356/37681