Mercurial > hg > nginx-site
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 リクエストの “Host” ヘッダだけを考査して、そのリクエストをどのサーバに振り向けるべきかを決定します。もし “Host” ヘッダがどのサーバ名ともマッチしない場合、またはリクエストにこのフィールドがまったく含まれていない場合は、nginxはこのリクエストをデフォルトサーバに振り向けます。上記の設定ではデフォルトサーバは最初のもので、これは nginx の標準的なデフォルトの挙動です。設定内の最初のサーバをデフォルトサーバにしたくない場合は、<literal>listen</literal> ディレクティブに <literal>default_server</literal> パラメータを使って明示的に設定することができます: | 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 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 リクエストの “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.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 } |