Mercurial > hg > nginx-site
comparison xml/ja/docs/http/request_processing.xml @ 271:4c6d2c614d2c
Cleaned up XML tag mess:
- all of <parameter> and <code>, and some of <dirname>, <value>,
and <command> were replaced by <literal>;
- the rest of <dirname> were replaced by links;
- <argument> were replaced by <value>;
- <value> is now rendered in HTML in italic;
- <literal> and <path> can now contain <value>.
Cleaned up terminology mess:
- directives take "parameters".
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Fri, 23 Dec 2011 17:29:59 +0000 |
parents | 7db449e89e92 |
children | 6135f3c95bf6 |
comparison
equal
deleted
inserted
replaced
270:945d7299c26c | 271:4c6d2c614d2c |
---|---|
31 } | 31 } |
32 </programlisting> | 32 </programlisting> |
33 </para> | 33 </para> |
34 | 34 |
35 <para> | 35 <para> |
36 この設定では nginx は、(ブラウザからの)HTTP リクエストの “Host” ヘッダだけを考査して、そのリクエストをどのサーバに振り向けるべきかを決定します。もし “Host” ヘッダがどのサーバ名ともマッチしない場合、またはリクエストにこのフィールドがまったく含まれていない場合は、nginxはこのリクエストをデフォルトサーバに振り向けます。上記の設定ではデフォルトサーバは最初のもので、これは nginx の標準的なデフォルトの挙動です。設定内の最初のサーバをデフォルトサーバにしたくない場合は、<dirname>listen</dirname> ディレクティブに <dirname>default_server</dirname> パラメータを使って明示的に設定することができます: | 36 この設定では nginx は、(ブラウザからの)HTTP リクエストの “Host” ヘッダだけを考査して、そのリクエストをどのサーバに振り向けるべきかを決定します。もし “Host” ヘッダがどのサーバ名ともマッチしない場合、またはリクエストにこのフィールドがまったく含まれていない場合は、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 nginx.net www.nginx.net; |
42 ... | 42 ... |
43 } | 43 } |
44 </programlisting> | 44 </programlisting> |
45 | 45 |
46 <note> | 46 <note> |
47 この <dirname>default_server</dirname> パラメータはバージョン 0.8.21 以上で利用できます。それ以前のバージョンでは代わりに <dirname>default</dirname> パラメータを使用してください。 | 47 この <literal>default_server</literal> パラメータはバージョン 0.8.21 以上で利用できます。それ以前のバージョンでは代わりに <literal>default</literal> パラメータを使用してください。 |
48 </note> | 48 </note> |
49 | 49 |
50 このデフォルトサーバは <dirname>listen</dirname> ディレクティブのプロパティで、<dirname>server_name</dirname> ディレクティブのプロパティではないことに注意してください。詳細は後述します。 | 50 このデフォルトサーバは <literal>listen</literal> ディレクティブのプロパティで、<literal>server_name</literal> ディレクティブのプロパティではないことに注意してください。詳細は後述します。 |
51 </para> | 51 </para> |
52 | 52 |
53 </section> | 53 </section> |
54 | 54 |
55 | 55 |
97 server_name nginx.com www.nginx.com; | 97 server_name nginx.com www.nginx.com; |
98 ... | 98 ... |
99 } | 99 } |
100 </programlisting> | 100 </programlisting> |
101 | 101 |
102 この設定では、nginx はまず最初に <dirname>server</dirname> ブロックの <dirname>listen</dirname> ディレクティブに対してリクエストの IP アドレスとポートを考査します。次に、その IP アドレスとポートにマッチする <dirname>server</dirname> ブロックの <dirname>server_name</dirname> ディレクティブに対して、その HTTP リクエストの “Host” ヘッダを考査します。 | 102 この設定では、nginx はまず最初に <literal>server</literal> ブロックの <literal>listen</literal> ディレクティブに対してリクエストの IP アドレスとポートを考査します。次に、その IP アドレスとポートにマッチする <literal>server</literal> ブロックの <literal>server_name</literal> ディレクティブに対して、その HTTP リクエストの “Host” ヘッダを考査します。 |
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.nginx.com</url> へのリクエストは 192.168.1.1:80 ポートのデフォルトサーバ、つまり最初のサーバで処理されます。これはこのポートでは <url>www.nginx.com</url> は定義されていないからです。 |
105 </para> | 105 </para> |
106 | 106 |
107 <para> | 107 <para> |
108 すでに述べたように、デフォルトサーバは <dirname>listen</dirname> ディレクティブのプロパティで、別の <dirname>listen</dirname> ディレクティブには別のデフォルトサーバが定義されています: | 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 nginx.org www.nginx.org; |
185 | 185 |
186 <list> | 186 <list> |
187 | 187 |
188 <item> | 188 <item> |
189 <para> | 189 <para> |
190 リクエスト <path>/logo.gif</path> はリテラルなロケーション <dirname>/</dirname> に最初にマッチし、次に正規表現 <dirname>\.(gif|jpg|png)$</dirname> にマッチするので、後者のロケーションによって処理されます。 このリクエストは <dirname>root /data/www</dirname> ディレクティブを使用してファイル <path>/data/www/logo.gif</path> にマップされ、このファイルがクライアントに送られます。 | 190 リクエスト <path>/logo.gif</path> はリテラルなロケーション <literal>/</literal> に最初にマッチし、次に正規表現 <literal>\.(gif|jpg|png)$</literal> にマッチするので、後者のロケーションによって処理されます。 このリクエストは <literal>root /data/www</literal> ディレクティブを使用してファイル <path>/data/www/logo.gif</path> にマップされ、このファイルがクライアントに送られます。 |
191 </para> | 191 </para> |
192 </item> | 192 </item> |
193 | 193 |
194 <item> | 194 <item> |
195 <para> | 195 <para> |
196 リクエスト <path>/index.php</path> もまたリテラルなロケーション <dirname>/</dirname> に最初にマッチし、次に正規表現 <dirname>\.(php)$</dirname> にマッチします。したがって、このリクエストは後者のロケーションによって処理され、localhost:9000 で待ち受けている FastCGI サーバに渡されます。<dirname>fastcgi_param</dirname> ディレクティブは FastCGI のパラメータ SCRIPT_FILENAME を <path>/data/www/index.php</path> にセットし、この FastCGI サーバがこのファイルを実行します。変数 $document_root は <dirname>root</dirname> ディレクティブの値と同等で、変数 $fastcgi_script_name はリクエスト URI、例えば <path>/index.php</path> と同等です。 | 196 リクエスト <path>/index.php</path> もまたリテラルなロケーション <literal>/</literal> に最初にマッチし、次に正規表現 <literal>\.(php)$</literal> にマッチします。したがって、このリクエストは後者のロケーションによって処理され、localhost:9000 で待ち受けている FastCGI サーバに渡されます。<literal>fastcgi_param</literal> ディレクティブは FastCGI のパラメータ SCRIPT_FILENAME を <path>/data/www/index.php</path> にセットし、この FastCGI サーバがこのファイルを実行します。変数 $document_root は <literal>root</literal> ディレクティブの値と同等で、変数 $fastcgi_script_name はリクエスト URI、例えば <path>/index.php</path> と同等です。 |
197 </para> | 197 </para> |
198 </item> | 198 </item> |
199 | 199 |
200 <item> | 200 <item> |
201 <para> | 201 <para> |
202 リクエスト <path>/about.html</path> はリテラルなロケーション <dirname>/</dirname> のみにマッチします。したがってこのロケーションで処理されます。このリクエストは <dirname>root</dirname> ディレクティブのパラメータ <dirname>/data/www</dirname> を使い、ファイル <path>/data/www/about.html</path> にマップされ、クライアントに送られます。 | 202 リクエスト <path>/about.html</path> はリテラルなロケーション <literal>/</literal> のみにマッチします。したがってこのロケーションで処理されます。このリクエストは <literal>root</literal> ディレクティブのパラメータ <literal>/data/www</literal> を使い、ファイル <path>/data/www/about.html</path> にマップされ、クライアントに送られます。 |
203 </para> | 203 </para> |
204 </item> | 204 </item> |
205 | 205 |
206 <item> | 206 <item> |
207 <para> | 207 <para> |
208 リクエスト <path>/</path> の処理はより複雑です。これはリテラルなロケーション <dirname>/</dirname> のみにマッチし、このロケーションで処理されます。ついで <dirname>index</dirname> ディレクティブがパラメータと <dirname>root</dirname> ディレクティブのパラメータ <dirname>/data/www</dirname> にしたがって index ファイルが存在するかどうかを考査します。もし <path>/data/www/index.php</path> ファイル存在すればこのディレクティブは <path>/index.php</path> への内部リダイレクトを実行し、nginx はまるでこのリクエストがクライアントに送られたかのようにこのロケーションを再び検索します。先に見たように、リダイレクトされたリクエストは最終的に FastCGI サーバで処理されます。 | 208 リクエスト <path>/</path> の処理はより複雑です。これはリテラルなロケーション <literal>/</literal> のみにマッチし、このロケーションで処理されます。ついで <literal>index</literal> ディレクティブがパラメータと <literal>root</literal> ディレクティブのパラメータ <literal>/data/www</literal> にしたがって index ファイルが存在するかどうかを考査します。もし <path>/data/www/index.php</path> ファイル存在すればこのディレクティブは <path>/index.php</path> への内部リダイレクトを実行し、nginx はまるでこのリクエストがクライアントに送られたかのようにこのロケーションを再び検索します。先に見たように、リダイレクトされたリクエストは最終的に FastCGI サーバで処理されます。 |
209 </para> | 209 </para> |
210 </item> | 210 </item> |
211 | 211 |
212 </list> | 212 </list> |
213 </para> | 213 </para> |