comparison xml/ja/docs/http/request_processing.xml @ 490:9913f1d51c07

Replaced "nginx" domain names with example domains.
author Ruslan Ermilov <ru@nginx.com>
date Thu, 19 Apr 2012 12:30:24 +0000
parents 6135f3c95bf6
children 130fad6dc1b4
comparison
equal deleted inserted replaced
489:2abd1998a0cc 490:9913f1d51c07
12 nginx はまず最初にどの<i>サーバ</i>がそのリクエストを処理すべきなのかを決定します。手はじめに、3つすべての仮想サーバが port *:80 で待ち受けている単純な設定から見てみましょう: 12 nginx はまず最初にどの<i>サーバ</i>がそのリクエストを処理すべきなのかを決定します。手はじめに、3つすべての仮想サーバが port *:80 で待ち受けている単純な設定から見てみましょう:
13 13
14 <programlisting> 14 <programlisting>
15 server { 15 server {
16 listen 80; 16 listen 80;
17 server_name nginx.org www.nginx.org; 17 server_name example.org www.example.org;
18 ... 18 ...
19 } 19 }
20 20
21 server { 21 server {
22 listen 80; 22 listen 80;
23 server_name nginx.net www.nginx.net; 23 server_name example.net www.example.net;
24 ... 24 ...
25 } 25 }
26 26
27 server { 27 server {
28 listen 80; 28 listen 80;
29 server_name nginx.com www.nginx.com; 29 server_name example.com www.example.com;
30 ... 30 ...
31 } 31 }
32 </programlisting> 32 </programlisting>
33 </para> 33 </para>
34 34
36 この設定では nginx は、(ブラウザからの)HTTP リクエストの &ldquo;Host&rdquo; ヘッダだけを考査して、そのリクエストをどのサーバに振り向けるべきかを決定します。もし &ldquo;Host&rdquo; ヘッダがどのサーバ名ともマッチしない場合、またはリクエストにこのフィールドがまったく含まれていない場合は、nginxはこのリクエストをデフォルトサーバに振り向けます。上記の設定ではデフォルトサーバは最初のもので、これは nginx の標準的なデフォルトの挙動です。設定内の最初のサーバをデフォルトサーバにしたくない場合は、<literal>listen</literal> ディレクティブに <literal>default_server</literal> パラメータを使って明示的に設定することができます: 36 この設定では nginx は、(ブラウザからの)HTTP リクエストの &ldquo;Host&rdquo; ヘッダだけを考査して、そのリクエストをどのサーバに振り向けるべきかを決定します。もし &ldquo;Host&rdquo; ヘッダがどのサーバ名ともマッチしない場合、またはリクエストにこのフィールドがまったく含まれていない場合は、nginxはこのリクエストをデフォルトサーバに振り向けます。上記の設定ではデフォルトサーバは最初のもので、これは nginx の標準的なデフォルトの挙動です。設定内の最初のサーバをデフォルトサーバにしたくない場合は、<literal>listen</literal> ディレクティブに <literal>default_server</literal> パラメータを使って明示的に設定することができます:
37 37
38 <programlisting> 38 <programlisting>
39 server { 39 server {
40 listen 80 <b>default_server</b>; 40 listen 80 <b>default_server</b>;
41 server_name nginx.net www.nginx.net; 41 server_name example.net www.example.net;
42 ... 42 ...
43 } 43 }
44 </programlisting> 44 </programlisting>
45 45
46 <note> 46 <note>
80 異なるアドレスで待ち受けている仮想サーバのより複雑な設定をみてみましょう: 80 異なるアドレスで待ち受けている仮想サーバのより複雑な設定をみてみましょう:
81 81
82 <programlisting> 82 <programlisting>
83 server { 83 server {
84 listen 192.168.1.1:80; 84 listen 192.168.1.1:80;
85 server_name nginx.org www.nginx.org; 85 server_name example.org www.example.org;
86 ... 86 ...
87 } 87 }
88 88
89 server { 89 server {
90 listen 192.168.1.1:80; 90 listen 192.168.1.1:80;
91 server_name nginx.net www.nginx.net; 91 server_name example.net www.example.net;
92 ... 92 ...
93 } 93 }
94 94
95 server { 95 server {
96 listen 192.168.1.2:80; 96 listen 192.168.1.2:80;
97 server_name nginx.com www.nginx.com; 97 server_name example.com www.example.com;
98 ... 98 ...
99 } 99 }
100 </programlisting> 100 </programlisting>
101 101
102 この設定では、nginx はまず最初に <literal>server</literal> ブロックの <literal>listen</literal> ディレクティブに対してリクエストの IP アドレスとポートを考査します。次に、その IP アドレスとポートにマッチする <literal>server</literal> ブロックの <literal>server_name</literal> ディレクティブに対して、その HTTP リクエストの &ldquo;Host&rdquo; ヘッダを考査します。 102 この設定では、nginx はまず最初に <literal>server</literal> ブロックの <literal>listen</literal> ディレクティブに対してリクエストの IP アドレスとポートを考査します。次に、その IP アドレスとポートにマッチする <literal>server</literal> ブロックの <literal>server_name</literal> ディレクティブに対して、その HTTP リクエストの &ldquo;Host&rdquo; ヘッダを考査します。
103 103
104 もしサーバ名が見つからなければ、そのリクエストはデフォルトサーバによって処理されます。例えば、192.168.1.1:80 ポートで受信された <url>www.nginx.com</url> へのリクエストは 192.168.1.1:80 ポートのデフォルトサーバ、つまり最初のサーバで処理されます。これはこのポートでは <url>www.nginx.com</url> は定義されていないからです。 104 もしサーバ名が見つからなければ、そのリクエストはデフォルトサーバによって処理されます。例えば、192.168.1.1:80 ポートで受信された <url>www.example.com</url> へのリクエストは 192.168.1.1:80 ポートのデフォルトサーバ、つまり最初のサーバで処理されます。これはこのポートでは <url>www.example.com</url> は定義されていないからです。
105 </para> 105 </para>
106 106
107 <para> 107 <para>
108 すでに述べたように、デフォルトサーバは <literal>listen</literal> ディレクティブのプロパティで、別の <literal>listen</literal> ディレクティブには別のデフォルトサーバが定義されています: 108 すでに述べたように、デフォルトサーバは <literal>listen</literal> ディレクティブのプロパティで、別の <literal>listen</literal> ディレクティブには別のデフォルトサーバが定義されています:
109 109
110 <programlisting> 110 <programlisting>
111 server { 111 server {
112 listen 192.168.1.1:80; 112 listen 192.168.1.1:80;
113 server_name nginx.org www.nginx.org; 113 server_name example.org www.example.org;
114 ... 114 ...
115 } 115 }
116 116
117 server { 117 server {
118 listen 192.168.1.1:80 default_server; 118 listen 192.168.1.1:80 default_server;
119 server_name nginx.net www.nginx.net; 119 server_name example.net www.example.net;
120 ... 120 ...
121 } 121 }
122 122
123 server { 123 server {
124 listen 192.168.1.2:80 default_server; 124 listen 192.168.1.2:80 default_server;
125 server_name nginx.com www.nginx.com; 125 server_name example.com www.example.com;
126 ... 126 ...
127 } 127 }
128 </programlisting> 128 </programlisting>
129 </para> 129 </para>
130 130
138 では、典型的で単純な PHP サイトで nginx がどのように<i>ロケーション(location)</i>を選択してリクエストを処理するのかを見てみましょう: 138 では、典型的で単純な PHP サイトで nginx がどのように<i>ロケーション(location)</i>を選択してリクエストを処理するのかを見てみましょう:
139 139
140 <programlisting> 140 <programlisting>
141 server { 141 server {
142 listen 80; 142 listen 80;
143 server_name nginx.org www.nginx.org; 143 server_name example.org www.example.org;
144 root /data/www; 144 root /data/www;
145 145
146 location / { 146 location / {
147 index index.html index.php; 147 index index.html index.php;
148 } 148 }