Lui*_*ppe 45 tomcat httpd httpd.conf virtualhost apache-2.2
我想知道VirtualHost Context 中“ default :*” 和 “*:*”之间的区别。
<VirtualHost _default_:*>
#...
ServerName host.example.com
#...
</VirtualHost>
<VirtualHost *:*>
#...
ServerName host.example.com
#...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我不知道区别和用途。
thk
reg*_*ero 52
解决方案是关于Virtualhost 指令的Apache 2.2 文档:
语法: ... (...) Addr 可以是:
- 虚拟主机的IP地址;
- 虚拟主机 IP 地址的完全限定域名(不推荐);
- 字符 *,仅与NameVirtualHost *结合使用以匹配所有 IP 地址;或者
- 字符串 _default_,仅用于IP 虚拟主机以捕获不匹配的 IP 地址。
存在两种处理虚拟主机的方法,基于名称的虚拟主机和基于 IP 的虚拟主机。
使用基于命名的虚拟主机,您有一个虚拟主机列表,每个虚拟主机管理一个或多个域名,每个与一对listening IP:port
. *
是一个特殊值,表示此主机上的所有 IP。对于每个给定的侦听地址,默认 virtualHost 是此列表中第一个声明的虚拟主机。
对于基于 IP 的 VirtualHosts,ServerName
不使用VirtualHost 的指令,重要信息是侦听 IP(和端口),默认 VirtualHost 是第一个匹配处理传入请求的 IP。
因此,使用基于命名的虚拟主机配置:
<Virtualhost *:80> with ServerName foo.com
表示“在此主机上管理的所有 IP 上”、“在端口 80 上”、“如果请求主机标头是 foo.com”,我将使用此虚拟主机<Virtualhost *:*> with Servername foo.com
表示“在此主机上管理的所有 IP 上”、“在所有端口上”、“如果请求主机标头是 foo.com”,我将使用此虚拟主机<Virtualhost 10.0.0.2:*> with Servername foo.com
表示“对于从我的网络接口 10.0.0.2 传入的请求”、“在所有端口上”、“如果请求主机标头是 foo.com”,我将使用此虚拟主机<Virtualhost _default_:*> with Servername foo.com
: 不应与基于名称的虚拟主机一起使用在基于 IP 的虚拟主机上:
<Virtualhost 10.0.0.2:*>
意思是“我将使用这个虚拟主机来处理我 10.0.0.2 接口上的请求”<Virtualhost _default_:443>
意思是“我将把这个虚拟主机用于我主机上的所有其他网络接口,以请求来自端口 443 的请求”<Virtualhost _default_:*>
意思是“我将把这个虚拟主机用于我主机上的所有其他网络接口,如果它与之前的规则不匹配,并且请求主机标头与基于命名的虚拟主机不匹配”所以这一切都是关于定义一个包罗万象的虚拟主机。文档补充说:
使用基于 IP 的虚拟主机时,
_default_
可以指定特殊名称,在这种情况下,此虚拟主机将匹配未在另一个虚拟主机中明确列出的任何 IP 地址。在没有任何_default_
虚拟主机的情况下,当没有 IP 匹配发生时,将使用“主”服务器配置,由任何 VirtualHost 部分之外的所有定义组成。(但请注意,任何与 NameVirtualHost 指令匹配的 IP 地址都不会使用“主”服务器配置或_default_
虚拟主机。有关详细信息,请参阅基于名称的虚拟主机文档。)
因此,在所有这些事情之后,很“清楚”混合基于 IP 和基于名称的虚拟主机可能会变得一团糟。Apache 2.2 基于名称的虚拟主机仅NameVirtualhost <something>
在使用时使用。
但是有了新的Apache 2.4版本,这些东西确实更容易理解,无需NameVirtualhost
声明。除了发出警告之外,NameVirtualHost 指令不再有任何效果。出现在多个虚拟主机中的任何地址/端口组合都被隐式视为基于名称的虚拟主机。没有更复杂的问题,甚至文档现在也更简单:
- 字符 *,用作通配符并匹配任何 IP 地址。
- 字符串
_default_
,它是 * 的别名
所以对于 apache 2.4,答案是一样的。
小智 0
_default_
所有端口的虚拟主机
捕获对任何未指定的 IP 地址和端口(即未用于任何其他虚拟主机的地址/端口组合)的每个请求。
http://httpd.apache.org/docs/2.2/vhosts/examples.html#default
归档时间: |
|
查看次数: |
49618 次 |
最近记录: |