comparison xml/cn/docs/http/server_names.xml @ 593:130fad6dc1b4

Replaced the uses of "url" element with "literal".
author Ruslan Ermilov <ru@nginx.com>
date Thu, 19 Jul 2012 05:17:45 +0000
parents 149f54c158f0
children 9934338f83af
comparison
equal deleted inserted replaced
592:d40371689c1c 593:130fad6dc1b4
46 <listitem> 46 <listitem>
47 确切的名字; 47 确切的名字;
48 </listitem> 48 </listitem>
49 49
50 <listitem> 50 <listitem>
51 以星号起始的通配符名字:<url>*.nginx.org</url>; 51 以星号起始的通配符名字:<literal>*.nginx.org</literal>;
52 </listitem> 52 </listitem>
53 53
54 <listitem> 54 <listitem>
55 以星号结束的通配符名字:<url>mail.*</url>; 55 以星号结束的通配符名字:<literal>mail.*</literal>;
56 </listitem> 56 </listitem>
57 57
58 <listitem> 58 <listitem>
59 正则表达式名字,按在配置文件中出现的顺序遍历。 59 正则表达式名字,按在配置文件中出现的顺序遍历。
60 </listitem> 60 </listitem>
68 68
69 <section id="wildcard_names" 69 <section id="wildcard_names"
70 name="通配符名字"> 70 name="通配符名字">
71 71
72 <para> 72 <para>
73 通配符名字只可以在名字的起始处或结尾处包含一个星号,并且星号与其他字符之间用点分隔。所以,<literal>www.*.nginx.org</literal>和<literal>w*.nginx.org</literal>都是非法的。不过,上面的两个名字可以使用正则表达式描述:<literal>~^www\..+\.nginx\.org$</literal>和<literal>~^w.*\.nginx\.org$</literal>。星号可以匹配名字的多个节(各节都是以点号分隔的),比如<literal>*.nginx.org</literal>不仅匹配<url>www.nginx.org</url>,也匹配<url>www.sub.nginx.org</url>。 73 通配符名字只可以在名字的起始处或结尾处包含一个星号,并且星号与其他字符之间用点分隔。所以,<literal>www.*.nginx.org</literal>和<literal>w*.nginx.org</literal>都是非法的。不过,上面的两个名字可以使用正则表达式描述:<literal>~^www\..+\.nginx\.org$</literal>和<literal>~^w.*\.nginx\.org$</literal>。星号可以匹配名字的多个节(各节都是以点号分隔的),比如<literal>*.nginx.org</literal>不仅匹配<literal>www.nginx.org</literal>,也匹配<literal>www.sub.nginx.org</literal>。
74 </para> 74 </para>
75 75
76 <para> 76 <para>
77 有一种形如<literal>.nginx.org</literal>的特殊通配符,它可以既匹配确切的名字<literal>nginx.org</literal>,又可以匹配一般的通配符名字<literal>*.nginx.org</literal>。 77 有一种形如<literal>.nginx.org</literal>的特殊通配符,它可以既匹配确切的名字<literal>nginx.org</literal>,又可以匹配一般的通配符名字<literal>*.nginx.org</literal>。
78 </para> 78 </para>
242 <para> 242 <para>
243 确切名字和通配符名字存储在哈希表中。哈希表和监听端口关联,每个端口都最多关联到三张表:确切名字的哈希表,以星号起始的通配符名字的哈希表和以星号结束的通配符名字的哈希表。哈希表的尺寸在配置阶段进行了优化,可以以最小的CPU缓存命中失败来找到名字。nginx首先搜索确切名字的哈希表,如果没有找到,搜索以星号起始的通配符名字的哈希表,如果还是没有找到,继续搜索以星号结束的通配符名字的哈希表。因为名字是按照域名的节来搜索的,所以搜索通配符名字的哈希表比搜索确切名字的哈希表慢。注意<literal>.nginx.org</literal>存储在通配符名字的哈希表中,而不在确切名字的哈希表中。正则表达式是一个一个串行的测试,所以是最慢的,而且不可扩展。 243 确切名字和通配符名字存储在哈希表中。哈希表和监听端口关联,每个端口都最多关联到三张表:确切名字的哈希表,以星号起始的通配符名字的哈希表和以星号结束的通配符名字的哈希表。哈希表的尺寸在配置阶段进行了优化,可以以最小的CPU缓存命中失败来找到名字。nginx首先搜索确切名字的哈希表,如果没有找到,搜索以星号起始的通配符名字的哈希表,如果还是没有找到,继续搜索以星号结束的通配符名字的哈希表。因为名字是按照域名的节来搜索的,所以搜索通配符名字的哈希表比搜索确切名字的哈希表慢。注意<literal>.nginx.org</literal>存储在通配符名字的哈希表中,而不在确切名字的哈希表中。正则表达式是一个一个串行的测试,所以是最慢的,而且不可扩展。
244 </para> 244 </para>
245 245
246 <para> 246 <para>
247 鉴于以上原因,请尽可能使用确切的名字。举个例子,如果使用<url>nginx.org</url>和<url>www.nginx.org</url>来访问服务器是最频繁的,那么将它们明确的定义出来就更为有效: 247 鉴于以上原因,请尽可能使用确切的名字。举个例子,如果使用<literal>nginx.org</literal>和<literal>www.nginx.org</literal>来访问服务器是最频繁的,那么将它们明确的定义出来就更为有效:
248 248
249 <programlisting> 249 <programlisting>
250 server { 250 server {
251 listen 80; 251 listen 80;
252 server_name nginx.org www.nginx.org *.nginx.org; 252 server_name nginx.org www.nginx.org *.nginx.org;
327 <listitem> 327 <listitem>
328 从0.6.7版本开始,支持正则表达式的虚拟主机名。 328 从0.6.7版本开始,支持正则表达式的虚拟主机名。
329 </listitem> 329 </listitem>
330 330
331 <listitem> 331 <listitem>
332 从0.6.0版本开始,支持形如<url>nginx.*</url>的通配符名字。 332 从0.6.0版本开始,支持形如<literal>nginx.*</literal>的通配符名字。
333 </listitem> 333 </listitem>
334 334
335 <listitem> 335 <listitem>
336 从0.3.18版本开始,支持形如<url>.nginx.org</url>的特殊通配符名字。 336 从0.3.18版本开始,支持形如<literal>.nginx.org</literal>的特殊通配符名字。
337 </listitem> 337 </listitem>
338 338
339 <listitem> 339 <listitem>
340 从0.1.13版本开始,支持形如<url>*.nginx.org</url>的通配符名字。 340 从0.1.13版本开始,支持形如<literal>*.nginx.org</literal>的通配符名字。
341 </listitem> 341 </listitem>
342 342
343 </list> 343 </list>
344 </para> 344 </para>
345 345