Mercurial > hg > nginx-site
comparison xml/ru/docs/http/ngx_http_fastcgi_module.xml @ 295:38e111ec051d
Revision.
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Thu, 29 Dec 2011 07:34:07 +0000 |
parents | 2305be197a84 |
children | 2f318fe954ec |
comparison
equal
deleted
inserted
replaced
294:9f5ee1c6fca5 | 295:38e111ec051d |
---|---|
1 <?xml version="1.0"?> | 1 <?xml version="1.0"?> |
2 | 2 |
3 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd"> | 3 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd"> |
4 | 4 |
5 <module name="Директивы модуля ngx_http_fastcgi_module" | 5 <module name="Модуль ngx_http_fastcgi_module" |
6 link="/ru/docs/http/ngx_http_fastcgi_module.html" | 6 link="/ru/docs/http/ngx_http_fastcgi_module.html" |
7 lang="ru"> | 7 lang="ru"> |
8 | 8 |
9 <section id="summary"> | 9 <section id="summary"> |
10 | 10 |
11 <para> | 11 <para> |
12 Модуль ngx_http_fastcgi_module позволяет передавать запросы | 12 Модуль <literal>ngx_http_fastcgi_module</literal> позволяет передавать |
13 удалённому FastCGI-серверу. | 13 запросы FastCGI-серверу. |
14 </para> | 14 </para> |
15 | 15 |
16 </section> | 16 </section> |
17 | 17 |
18 | 18 |
19 <section name="Пример конфигурации" id="example"> | 19 <section id="example" name="Пример конфигурации"> |
20 | 20 |
21 <para> | 21 <para> |
22 <example> | 22 <example> |
23 location / { | 23 location / { |
24 fastcgi_pass localhost:9000; | 24 fastcgi_pass localhost:9000; |
25 fastcgi_index index.php; | 25 fastcgi_index index.php; |
26 | 26 |
27 fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name; | 27 fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name; |
28 fastcgi_param QUERY_STRING $query_string; | 28 fastcgi_param QUERY_STRING $query_string; |
29 fastcgi_param REQUEST_METHOD $request_method; | 29 fastcgi_param REQUEST_METHOD $request_method; |
30 fastcgi_param CONTENT_TYPE $content_type; | 30 fastcgi_param CONTENT_TYPE $content_type; |
31 fastcgi_param CONTENT_LENGTH $content_length; | 31 fastcgi_param CONTENT_LENGTH $content_length; |
32 } | 32 } |
33 </example> | 33 </example> |
34 </para> | 34 </para> |
35 | 35 |
36 </section> | 36 </section> |
37 | 37 |
38 | 38 |
39 <section name="Директивы" id="directives"> | 39 <section id="directives" name="Директивы"> |
40 | 40 |
41 <directive name="fastcgi_buffer_size"> | 41 <directive name="fastcgi_buffer_size"> |
42 <syntax><value>размер</value></syntax> | 42 <syntax><value>размер</value></syntax> |
43 <default>4k/8k</default> | 43 <default>4k|8k</default> |
44 <context>http, server, location</context> | 44 <context>http</context> |
45 | 45 <context>server</context> |
46 <para> | 46 <context>location</context> |
47 Директива задаёт размер буфера, в который будет читаться | 47 |
48 <para> | |
49 Задаёт <value>размер</value> буфера, в который будет читаться | |
48 первая часть ответа, получаемого от FastCGI-сервера. | 50 первая часть ответа, получаемого от FastCGI-сервера. |
49 В этой части ответа находится, как правило, небольшой заголовок ответа. | 51 В этой части ответа находится, как правило, небольшой заголовок ответа. |
50 По умолчанию размер буфера равен размеру одного буфера в директиве | 52 По умолчанию размер буфера равен размеру одного буфера в директиве |
51 <link id="fastcgi_buffers"/>, однако его можно сделать меньше. | 53 <link id="fastcgi_buffers"/>, однако его можно сделать меньше. |
52 </para> | 54 </para> |
54 </directive> | 56 </directive> |
55 | 57 |
56 | 58 |
57 <directive name="fastcgi_buffers"> | 59 <directive name="fastcgi_buffers"> |
58 <syntax><value>число</value> <value>размер</value></syntax> | 60 <syntax><value>число</value> <value>размер</value></syntax> |
59 <default>8 4k/8k</default> | 61 <default>8 4k|8k</default> |
60 <context>http, server, location</context> | 62 <context>http</context> |
61 | 63 <context>server</context> |
62 <para> | 64 <context>location</context> |
63 Директива задаёт число и размер буферов для одного соединения, | 65 |
66 <para> | |
67 Задаёт <value>число</value> и <value>размер</value> буферов | |
68 для одного соединения, | |
64 в которые будет читаться ответ, получаемый от FastCGI-сервера. | 69 в которые будет читаться ответ, получаемый от FastCGI-сервера. |
65 По умолчанию размер одного буфера равен размеру страницы, в зависимости | 70 По умолчанию размер одного буфера равен размеру страницы. |
66 от платформы это или 4K, или 8K. | 71 В зависимости от платформы это или 4K, или 8K. |
67 </para> | 72 </para> |
68 | 73 |
69 </directive> | 74 </directive> |
70 | 75 |
71 | 76 |
72 <directive name="fastcgi_cache"> | 77 <directive name="fastcgi_cache"> |
73 <syntax><value>зона</value> | <literal>off</literal></syntax> | 78 <syntax><value>зона</value> | <literal>off</literal></syntax> |
74 <default>off</default> | 79 <default>off</default> |
75 <context>http, server, location</context> | 80 <context>http</context> |
76 | 81 <context>server</context> |
77 <para> | 82 <context>location</context> |
78 Директива задаёт зону для кэширования. | 83 |
84 <para> | |
85 Задаёт зону для кэширования. | |
79 Одна и та же зона может использоваться в нескольких местах. | 86 Одна и та же зона может использоваться в нескольких местах. |
80 Параметр "off" запрещает кэширование, унаследованное с предыдущего | 87 Параметр <literal>off</literal> запрещает кэширование, унаследованное |
81 уровня конфигурации. | 88 с предыдущего уровня конфигурации. |
82 </para> | 89 </para> |
83 | 90 |
84 </directive> | 91 </directive> |
85 | 92 |
86 | 93 |
87 <directive name="fastcgi_cache_bypass"> | 94 <directive name="fastcgi_cache_bypass"> |
88 <syntax><value>строка</value> ...</syntax> | 95 <syntax><value>строка</value> ...</syntax> |
89 <default/> | 96 <default/> |
90 <context>http, server, location</context> | 97 <context>http</context> |
91 | 98 <context>server</context> |
92 <para> | 99 <context>location</context> |
93 Директива задаёт условия, при которых ответ не будет браться из кэша. | 100 |
94 Если значение хотя бы одной из строк переменных не пустое и не равно "0", | 101 <para> |
102 Задаёт условия, при которых ответ не будет браться из кэша. | |
103 Если значение хотя бы одного из строковых параметров непустое и не равно “0”, | |
95 то ответ не берётся из кэша: | 104 то ответ не берётся из кэша: |
96 <example> | 105 <example> |
97 fastcgi_cache_bypass $cookie_nocache $arg_nocache$arg_comment; | 106 fastcgi_cache_bypass $cookie_nocache $arg_nocache$arg_comment; |
98 fastcgi_cache_bypass $http_pragma $http_authorization; | 107 fastcgi_cache_bypass $http_pragma $http_authorization; |
99 </example> | 108 </example> |
100 Можно использовать совместно с директивой <link id="fastcgi_no_cache"/>. | 109 Можно использовать совместно с директивой <link id="fastcgi_no_cache"/>. |
101 </para> | 110 </para> |
102 | 111 |
103 </directive> | 112 </directive> |
104 | 113 |
105 | 114 |
106 <directive name="fastcgi_cache_key"> | 115 <directive name="fastcgi_cache_key"> |
107 <syntax><value>строка</value></syntax> | 116 <syntax><value>строка</value></syntax> |
108 <default/> | 117 <default/> |
109 <context>http, server, location</context> | 118 <context>http</context> |
110 | 119 <context>server</context> |
111 <para> | 120 <context>location</context> |
112 Директива задаёт ключ для кэширования, например, | 121 |
113 <example> | 122 <para> |
114 fastcgi_cache_key localhost:9000$request_uri; | 123 Задаёт ключ для кэширования, например, |
115 </example> | 124 <example> |
125 fastcgi_cache_key localhost:9000$request_uri; | |
126 </example> | |
127 </para> | |
128 | |
129 </directive> | |
130 | |
131 | |
132 <directive name="fastcgi_cache_min_uses"> | |
133 <syntax><value>число</value></syntax> | |
134 <default>1</default> | |
135 <context>http</context> | |
136 <context>server</context> | |
137 <context>location</context> | |
138 | |
139 <para> | |
140 Задаёт <value>число</value> запросов, после которого ответ будет закэширован. | |
116 </para> | 141 </para> |
117 | 142 |
118 </directive> | 143 </directive> |
119 | 144 |
120 | 145 |
121 <directive name="fastcgi_cache_path"> | 146 <directive name="fastcgi_cache_path"> |
122 <syntax> | 147 <syntax> |
123 <value>путь</value> | 148 <value>путь</value> |
124 [<literal>levels</literal>=<value>уровни</value>] | 149 [<literal>levels</literal>=<value>уровни</value>] |
125 <literal>keys_zone</literal>=<value>название</value>:<value>размер</value> | 150 <literal>keys_zone</literal>=<value>имя</value>:<value>размер</value> |
126 [<literal>inactive</literal>=<value>время</value>] | 151 [<literal>inactive</literal>=<value>время</value>] |
127 [<literal>max_size</literal>=<value>размер</value>]</syntax> | 152 [<literal>max_size</literal>=<value>размер</value>]</syntax> |
128 <default/> | 153 <default/> |
129 <context>http</context> | 154 <context>http</context> |
130 | 155 |
131 <para> | 156 <para> |
132 Директива задаёт путь и другие параметры кэша. Данные кэша хранятся в файлах. | 157 Задаёт путь и другие параметры кэша. |
133 Ключом и именем файла в кэше является результат функции md5 от | 158 Данные кэша хранятся в файлах. |
134 проксированного URL. Параметр levels задаёт уровни иерархии кэша, | 159 Ключом и именем файла в кэше является результат функции MD5 |
160 от проксированного URL. | |
161 Параметр <literal>levels</literal> задаёт уровни иерархии кэша, | |
135 например, при использовании | 162 например, при использовании |
136 <example> | 163 <example> |
137 fastcgi_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m; | 164 fastcgi_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m; |
138 </example> | 165 </example> |
139 имена файлов в кэше будут такого вида: | 166 имена файлов в кэше будут такого вида: |
140 <example> | 167 <example> |
141 /data/nginx/cache/<emphasis>c/29</emphasis>/b7f54b2df7773722d382f4809d650<emphasis>29c</emphasis> | 168 /data/nginx/cache/<emphasis>c</emphasis>/<emphasis>29</emphasis>/b7f54b2df7773722d382f4809d650<emphasis>29c</emphasis> |
142 </example> | 169 </example> |
143 </para> | 170 </para> |
144 | 171 |
145 <para> | 172 <para> |
146 Кэшируемый ответ записывается во временный файл, а потом этот файл | 173 Кэшируемый ответ сначала записывается во временный файл, а потом этот файл |
147 переименовывается. Начиная с версии 0.8.9, временные файлы и кэш | 174 переименовывается. Начиная с версии 0.8.9, временные файлы и кэш |
148 могут располагаться на разных файловых системах, но нужно учитывать, | 175 могут располагаться на разных файловых системах, но нужно учитывать, |
149 что в этом случае вместо дешёвой операции переименовывания в пределах | 176 что в этом случае вместо дешёвой операции переименовывания в пределах |
150 одной файловой системы файл копируется с одной файловой системы на другую. | 177 одной файловой системы файл копируется с одной файловой системы на другую. |
151 Поэтому лучше, если кэш будет находиться на той же файловой | 178 Поэтому лучше, если кэш будет находиться на той же файловой |
153 <link id="fastcgi_temp_path"/> для данного location. | 180 <link id="fastcgi_temp_path"/> для данного location. |
154 </para> | 181 </para> |
155 | 182 |
156 <para> | 183 <para> |
157 Кроме того, все активные ключи и информация о данных хранятся в разделяемой | 184 Кроме того, все активные ключи и информация о данных хранятся в разделяемой |
158 памяти — зоне, имя и размер которой задаётся параметром keys_zone. | 185 памяти — зоне, <value>имя</value> и <value>размер</value> которой |
186 задаются параметром <literal>keys_zone</literal>. | |
159 Если к данным кэша не обращаются в течение времени, заданного параметром | 187 Если к данным кэша не обращаются в течение времени, заданного параметром |
160 inactive, то данные удаляются, независимо от их свежести. | 188 <literal>inactive</literal>, то данные удаляются, независимо от их свежести. |
161 По умолчанию inactive равен 10 минутам. | 189 По умолчанию <literal>inactive</literal> равен 10 минутам. |
162 </para> | 190 </para> |
163 | 191 |
164 <para> | 192 <para> |
165 Специальный процесс "cache manager" следит за максимальным размером кэша, | 193 Специальный процесс “cache manager” следит за максимальным размером кэша, |
166 заданным параметром max_size, и при превышении его размеров удаляет | 194 заданным параметром <literal>max_size</literal>, и при превышении |
167 самые невостребованные данные. | 195 его размеров удаляет самые невостребованные данные. |
168 </para> | |
169 | |
170 </directive> | |
171 | |
172 | |
173 <directive name="fastcgi_cache_min_uses"> | |
174 <syntax><value>число</value></syntax> | |
175 <default>1</default> | |
176 <context>http, server, location</context> | |
177 | |
178 <para> | |
179 Директива задаёт число запросов, после которого ответ будет | |
180 закэширован. | |
181 </para> | |
182 | |
183 </directive> | |
184 | |
185 | |
186 <directive name="fastcgi_cache_valid"> | |
187 <syntax><value>ответ</value> ... <value>время</value> | |
188 </syntax> | |
189 <default/> | |
190 <context>http, server, location</context> | |
191 | |
192 <para> | |
193 Директива задаёт время кэширования для разных ответов. | |
194 Например, директивы | |
195 <example> | |
196 fastcgi_cache_valid 200 302 10m; | |
197 fastcgi_cache_valid 404 1m; | |
198 </example> | |
199 задают время кэширования 10 минут для ответов 200 и 302, | |
200 и 1 минуту для ответов 404. | |
201 </para> | |
202 | |
203 <para> | |
204 Если указано только время кэширования, | |
205 <example> | |
206 fastcgi_cache_valid 5m; | |
207 </example> | |
208 то кэшируются только ответы 200, 301 и 302. | |
209 </para> | |
210 | |
211 <para> | |
212 Кроме того, может кэшировать любые ответы с помощью параметра "any": | |
213 <example> | |
214 fastcgi_cache_valid 200 302 10m; | |
215 fastcgi_cache_valid 301 1h; | |
216 fastcgi_cache_valid any 1m; | |
217 </example> | |
218 </para> | 196 </para> |
219 | 197 |
220 </directive> | 198 </directive> |
221 | 199 |
222 | 200 |
230 <literal>http_503</literal> | | 208 <literal>http_503</literal> | |
231 <literal>http_404</literal> | | 209 <literal>http_404</literal> | |
232 <literal>off</literal> | 210 <literal>off</literal> |
233 ...</syntax> | 211 ...</syntax> |
234 <default>off</default> | 212 <default>off</default> |
235 <context>http, server, location</context> | 213 <context>http</context> |
236 | 214 <context>server</context> |
237 | 215 <context>location</context> |
238 <para> | 216 |
239 Директива определяет, в каких случаях можно использовать | 217 <para> |
240 устаревший закэшированный ответ, если при работе с проксированным | 218 Определяет, в каких случаях можно использовать устаревший закэшированный ответ, |
241 сервером возникла ошибка. Параметры директивы совпадают с параметрами | 219 если при работе с FastCGI-сервером возникла ошибка. |
220 Параметры директивы совпадают с параметрами | |
242 директивы <link id="fastcgi_next_upstream"/>. | 221 директивы <link id="fastcgi_next_upstream"/>. |
243 И, кроме того, есть параметр updating, которой разрешает использовать | 222 Кроме того, дополнительный параметр <literal>updating</literal> |
244 устаревший закэшированный ответ, если на данный момент он уже обновляется. | 223 разрешает использовать устаревший закэшированный ответ, |
224 если на данный момент он уже обновляется. | |
225 </para> | |
226 | |
227 </directive> | |
228 | |
229 | |
230 <directive name="fastcgi_cache_valid"> | |
231 <syntax>[<value>код</value> ...] <value>время</value></syntax> | |
232 <default/> | |
233 <context>http</context> | |
234 <context>server</context> | |
235 <context>location</context> | |
236 | |
237 <para> | |
238 Задаёт время кэширования для разных кодов ответа. | |
239 Например, директивы | |
240 <example> | |
241 fastcgi_cache_valid 200 302 10m; | |
242 fastcgi_cache_valid 404 1m; | |
243 </example> | |
244 задают время кэширования 10 минут для ответов с кодами 200 и 302, | |
245 и 1 минуту для ответов с кодом 404. | |
246 </para> | |
247 | |
248 <para> | |
249 Если указано только <value>время</value> кэширования, | |
250 <example> | |
251 fastcgi_cache_valid 5m; | |
252 </example> | |
253 то кэшируются только ответы 200, 301 и 302. | |
254 </para> | |
255 | |
256 <para> | |
257 Кроме того, можно кэшировать любые ответы с помощью параметра | |
258 <literal>any</literal>: | |
259 <example> | |
260 fastcgi_cache_valid 200 302 10m; | |
261 fastcgi_cache_valid 301 1h; | |
262 fastcgi_cache_valid any 1m; | |
263 </example> | |
245 </para> | 264 </para> |
246 | 265 |
247 </directive> | 266 </directive> |
248 | 267 |
249 | 268 |
250 <directive name="fastcgi_connect_timeout"> | 269 <directive name="fastcgi_connect_timeout"> |
251 <syntax><value>время</value></syntax> | 270 <syntax><value>время</value></syntax> |
252 <default>60</default> | 271 <default>60s</default> |
253 <context>http, server, location</context> | 272 <context>http</context> |
254 | 273 <context>server</context> |
255 <para> | 274 <context>location</context> |
256 Директива задаёт таймаут для соединения с FastCGI-сервером. | 275 |
257 Необходимо иметь в виду, что этот таймаут не может быть больше 75 секунд. | 276 <para> |
258 </para> | 277 Задаёт таймаут для установления соединения с FastCGI-сервером. |
259 | 278 Необходимо иметь в виду, что этот таймаут обычно не может превышать 75 секунд. |
260 </directive> | |
261 | |
262 | |
263 <directive name="fastcgi_index"> | |
264 <syntax><value>имя</value></syntax> | |
265 <default/> | |
266 <context>http, server, location</context> | |
267 | |
268 <para> | |
269 Директива задаёт имя файла, который при создании переменной | |
270 $fastcgi_script_name будет добавляться после URI, если URI | |
271 заканчивается слэшом. Например, при таких настройках | |
272 <example> | |
273 fastcgi_index index.php; | |
274 fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name; | |
275 </example> | |
276 и запросе "/page.php" параметр SCRIPT_FILENAME будет равен | |
277 "/home/www/scripts/php/page.php", | |
278 а при запросе "/" — "/home/www/scripts/php/index.php". | |
279 </para> | 279 </para> |
280 | 280 |
281 </directive> | 281 </directive> |
282 | 282 |
283 | 283 |
284 <directive name="fastcgi_hide_header"> | 284 <directive name="fastcgi_hide_header"> |
285 <syntax><value>имя</value></syntax> | 285 <syntax><value>поле</value></syntax> |
286 <default/> | 286 <default/> |
287 <context>http, server, location</context> | 287 <context>http</context> |
288 | 288 <context>server</context> |
289 <para> | 289 <context>location</context> |
290 nginx не передаёт клиенту строки заголовка "Status" и "X-Accel-..." | 290 |
291 из ответа FastCGI-сервера. | 291 <para> |
292 Директива fastcgi_hide_header задаёт дополнительные строки. | 292 По умолчанию |
293 Если же строки нужно напротив разрешить, следует воспользоваться | 293 nginx не передаёт клиенту поля заголовка <header>Status</header> и |
294 <header>X-Accel-...</header> из ответа FastCGI-сервера. | |
295 Директива <literal>fastcgi_hide_header</literal> задаёт дополнительные поля, | |
296 которые не будут передаваться. | |
297 Если же передачу полей нужно разрешить, можно воспользоваться | |
294 директивой <link id="fastcgi_pass_header"/>. | 298 директивой <link id="fastcgi_pass_header"/>. |
295 </para> | 299 </para> |
296 | 300 |
297 </directive> | 301 </directive> |
298 | 302 |
299 | 303 |
300 <directive name="fastcgi_ignore_client_abort"> | 304 <directive name="fastcgi_ignore_client_abort"> |
301 <syntax><literal>on</literal> | <literal>off</literal></syntax> | 305 <syntax><literal>on</literal> | <literal>off</literal></syntax> |
302 <default>off</default> | 306 <default>off</default> |
303 <context>http, server, location</context> | 307 <context>http</context> |
304 | 308 <context>server</context> |
305 | 309 <context>location</context> |
306 <para> | 310 |
307 Директива определяет, закрывать ли соединение с FastCGI-сервером | 311 <para> |
312 Определяет, закрывать ли соединение с FastCGI-сервером | |
308 в случае, если клиент закрыл соединение, не дождавшись ответа. | 313 в случае, если клиент закрыл соединение, не дождавшись ответа. |
309 </para> | 314 </para> |
310 | 315 |
311 </directive> | 316 </directive> |
312 | 317 |
313 | 318 |
314 <directive name="fastcgi_ignore_headers"> | 319 <directive name="fastcgi_ignore_headers"> |
315 <syntax><value>имя</value> ...</syntax> | 320 <syntax><value>поле</value> ...</syntax> |
316 <default/> | 321 <default/> |
317 <context>http, server, location</context> | 322 <context>http</context> |
318 | 323 <context>server</context> |
319 <para> | 324 <context>location</context> |
320 Директива fastcgi_ignore_headers запрещает обработку некоторых | 325 |
321 строк заголовка из ответа FastCGI-сервера. | 326 <para> |
322 В директиве можно указать строки "X-Accel-Redirect", "X-Accel-Expires", | 327 Запрещает обработку некоторых полей заголовка из ответа FastCGI-сервера. |
323 "X-Accel-Limit-Rate" (1.1.6), "X-Accel-Buffering" (1.1.6), | 328 В директиве можно указать поля <header>X-Accel-Redirect</header>, |
324 "X-Accel-Charset" (1.1.6), "Expires", "Cache-Control" и "Set-Cookie" (0.8.44). | 329 <header>X-Accel-Expires</header>, <header>X-Accel-Limit-Rate</header> (1.1.6), |
330 <header>X-Accel-Buffering</header> (1.1.6), | |
331 <header>X-Accel-Charset</header> (1.1.6), <header>Expires</header>, | |
332 <header>Cache-Control</header> и <header>Set-Cookie</header> (0.8.44). | |
333 </para> | |
334 | |
335 </directive> | |
336 | |
337 | |
338 <directive name="fastcgi_index"> | |
339 <syntax><value>имя</value></syntax> | |
340 <default/> | |
341 <context>http</context> | |
342 <context>server</context> | |
343 <context>location</context> | |
344 | |
345 <para> | |
346 Задаёт имя файла, который при создании переменной | |
347 <var>$fastcgi_script_name</var> будет добавляться после URI, | |
348 если URI заканчивается слэшом. | |
349 Например, при таких настройках | |
350 <example> | |
351 fastcgi_index index.php; | |
352 fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name; | |
353 </example> | |
354 и запросе “<literal>/page.php</literal>” | |
355 параметр <literal>SCRIPT_FILENAME</literal> будет равен | |
356 “<literal>/home/www/scripts/php/page.php</literal>”, | |
357 а при запросе “<literal>/</literal>”— | |
358 “<literal>/home/www/scripts/php/index.php</literal>”. | |
325 </para> | 359 </para> |
326 | 360 |
327 </directive> | 361 </directive> |
328 | 362 |
329 | 363 |
330 <directive name="fastcgi_intercept_errors"> | 364 <directive name="fastcgi_intercept_errors"> |
331 <syntax><literal>on</literal> | <literal>off</literal></syntax> | 365 <syntax><literal>on</literal> | <literal>off</literal></syntax> |
332 <default>off</default> | 366 <default>off</default> |
333 <context>http, server, location</context> | 367 <context>http</context> |
334 | 368 <context>server</context> |
335 <para> | 369 <context>location</context> |
336 Директива определяет, передавать ли клиенту ответы FastCGI-сервера с кодом | 370 |
337 больше или равные 400 или же перенаправлять их на обработку nginx'у с помощью | 371 <para> |
338 директивы error_page. | 372 Определяет, передавать ли клиенту ответы FastCGI-сервера с кодом |
339 </para> | 373 больше либо равным 400, или же перенаправлять их на обработку nginx'у с помощью |
340 | 374 директивы <link doc="ngx_http_core_module.xml" id="error_page"/>. |
341 </directive> | |
342 | |
343 | |
344 <directive name="fastcgi_no_cache"> | |
345 <syntax><value>строка</value> ...</syntax> | |
346 <default/> | |
347 <context>http, server, location</context> | |
348 | |
349 <para> | |
350 Директива задаёт условия, при которых ответ не будет сохраняться в кэш. | |
351 Если значение хотя бы одной из строк переменных не пустое и не равно "0", | |
352 то ответ не будет сохранён: | |
353 <example> | |
354 fastcgi_no_cache $cookie_nocache $arg_nocache$arg_comment; | |
355 fastcgi_no_cache $http_pragma $http_authorization; | |
356 </example> | |
357 Можно использовать совместно с директивой | |
358 <link id="fastcgi_cache_bypass"/>. | |
359 </para> | 375 </para> |
360 | 376 |
361 </directive> | 377 </directive> |
362 | 378 |
363 | 379 |
370 <literal>http_503</literal> | | 386 <literal>http_503</literal> | |
371 <literal>http_404</literal> | | 387 <literal>http_404</literal> | |
372 <literal>off</literal> | 388 <literal>off</literal> |
373 ...</syntax> | 389 ...</syntax> |
374 <default>error timeout</default> | 390 <default>error timeout</default> |
375 <context>http, server, location</context> | 391 <context>http</context> |
376 | 392 <context>server</context> |
377 | 393 <context>location</context> |
378 <para> | 394 |
379 Директива определяет, в каких случаях запрос будет передан следующему серверу: | 395 <para> |
380 <list type="bullet"> | 396 Определяет, в каких случаях запрос будет передан следующему серверу: |
381 | 397 <list type="tag"> |
382 <listitem> | 398 |
383 error — произшла ошибка соединения с сервером, передачи ему запроса или | 399 <tag-name><literal>error</literal></tag-name> |
384 чтения заголовка ответа сервера; | 400 <tag-desc>произошла ошибка соединения с сервером, передачи ему запроса или |
385 </listitem> | 401 чтения заголовка ответа сервера;</tag-desc> |
386 | 402 |
387 <listitem> | 403 <tag-name><literal>timeout</literal></tag-name> |
388 timeout — произошёл таймаут во время соединения с сервером, | 404 <tag-desc>произошёл таймаут во время соединения с сервером, |
389 передачи ему запроса или чтения заголовка ответа сервера; | 405 передачи ему запроса или чтения заголовка ответа сервера;</tag-desc> |
390 </listitem> | 406 |
391 | 407 <tag-name><literal>invalid_header</literal></tag-name> |
392 <listitem> | 408 <tag-desc>сервер вернул пустой или неверный ответ;</tag-desc> |
393 invalid_header — сервер вернул пустой или неверный ответ; | 409 |
394 </listitem> | 410 <tag-name><literal>http_500</literal></tag-name> |
395 | 411 <tag-desc>сервер вернул ответ с кодом 500;</tag-desc> |
396 <listitem> | 412 |
397 http_500 — сервер вернул ответ с кодом 500; | 413 <tag-name><literal>http_503</literal></tag-name> |
398 </listitem> | 414 <tag-desc>сервер вернул ответ с кодом 503;</tag-desc> |
399 | 415 |
400 <listitem> | 416 <tag-name><literal>http_404</literal></tag-name> |
401 http_503 — сервер вернул ответ с кодом 503; | 417 <tag-desc>сервер вернул ответ с кодом 404;</tag-desc> |
402 </listitem> | 418 |
403 | 419 <tag-name><literal>off</literal></tag-name> |
404 <listitem> | 420 <tag-desc>запрещает передачу запроса следующему серверу.</tag-desc> |
405 http_404 — сервер вернул ответ с кодом 404; | |
406 </listitem> | |
407 | |
408 <listitem> | |
409 off — запрещает передачу запроса следующему серверу; | |
410 </listitem> | |
411 | 421 |
412 </list> | 422 </list> |
413 </para> | 423 </para> |
414 | 424 |
415 <para> | 425 <para> |
420 </para> | 430 </para> |
421 | 431 |
422 </directive> | 432 </directive> |
423 | 433 |
424 | 434 |
435 <directive name="fastcgi_no_cache"> | |
436 <syntax><value>строка</value> ...</syntax> | |
437 <default/> | |
438 <context>http</context> | |
439 <context>server</context> | |
440 <context>location</context> | |
441 | |
442 <para> | |
443 Задаёт условия, при которых ответ не будет сохраняться в кэш. | |
444 Если значение хотя бы одного из строковых параметров непустое и не равно “0”, | |
445 то ответ не будет сохранён: | |
446 <example> | |
447 fastcgi_no_cache $cookie_nocache $arg_nocache$arg_comment; | |
448 fastcgi_no_cache $http_pragma $http_authorization; | |
449 </example> | |
450 Можно использовать совместно с директивой <link id="fastcgi_cache_bypass"/>. | |
451 </para> | |
452 | |
453 </directive> | |
454 | |
455 | |
425 <directive name="fastcgi_param"> | 456 <directive name="fastcgi_param"> |
426 <syntax> | 457 <syntax> |
427 <value>параметр</value> <value>значение</value> | 458 <value>параметр</value> <value>значение</value> |
428 [<literal>if_not_empty</literal>]</syntax> | 459 [<literal>if_not_empty</literal>]</syntax> |
429 <default/> | 460 <default/> |
430 <context>http, server, location</context> | 461 <context>http</context> |
431 | 462 <context>server</context> |
432 <para> | 463 <context>location</context> |
433 Директива задаёт параметр, который будут передаваться FastCGI-серверу. | 464 |
465 <para> | |
466 Задаёт <value>параметр</value>, который будет передаваться FastCGI-серверу. | |
434 В качестве значения можно использовать текст, переменные и их комбинации. | 467 В качестве значения можно использовать текст, переменные и их комбинации. |
435 Директивы наследуются с предыдущего уровня при условии, что на данном | 468 Директивы наследуются с предыдущего уровня при условии, что на данном |
436 уровне не описаны свои директивы <literal>fastcgi_param</literal>. | 469 уровне не описаны свои директивы <literal>fastcgi_param</literal>. |
437 </para> | 470 </para> |
438 | 471 |
439 <para> | 472 <para> |
440 Ниже приведён пример минимально необходимых параметров для PHP: | 473 Ниже приведён пример минимально необходимых параметров для PHP: |
441 <example> | 474 <example> |
442 fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name; | 475 fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name; |
443 fastcgi_param QUERY_STRING $query_string; | 476 fastcgi_param QUERY_STRING $query_string; |
444 </example> | 477 </example> |
445 </para> | 478 </para> |
446 | 479 |
447 <para> | 480 <para> |
448 Параметр SCRIPT_FILENAME используется в PHP для определения имени скрипта, | 481 Параметр <literal>SCRIPT_FILENAME</literal> используется в PHP для |
449 а в параметре QUERY_STRING передаются параметры запроса. | 482 определения имени скрипта, а в параметре <literal>QUERY_STRING</literal> |
450 </para> | 483 передаются параметры запроса. |
451 | 484 </para> |
452 <para> | 485 |
453 Если скрипты обрабатывают запросы POST, то нужны ещё три параметра: | 486 <para> |
454 <example> | 487 Если скрипты обрабатывают запросы <literal>POST</literal>, то нужны |
455 fastcgi_param REQUEST_METHOD $request_method; | 488 ещё три параметра: |
456 fastcgi_param CONTENT_TYPE $content_type; | 489 <example> |
457 fastcgi_param CONTENT_LENGTH $content_length; | 490 fastcgi_param REQUEST_METHOD $request_method; |
491 fastcgi_param CONTENT_TYPE $content_type; | |
492 fastcgi_param CONTENT_LENGTH $content_length; | |
458 </example> | 493 </example> |
459 </para> | 494 </para> |
460 | 495 |
461 <para> | 496 <para> |
462 Если PHP был собран с параметром конфигурации | 497 Если PHP был собран с параметром конфигурации |
463 <literal>--enable-force-cgi-redirect</literal>, то нужно передавать | 498 <literal>--enable-force-cgi-redirect</literal>, то нужно передавать |
464 параметр REDIRECT_STATUS со значением "200": | 499 параметр <literal>REDIRECT_STATUS</literal> со значением “200”: |
465 <example> | 500 <example> |
466 fastcgi_param REDIRECT_STATUS 200; | 501 fastcgi_param REDIRECT_STATUS 200; |
467 </example> | 502 </example> |
468 </para> | 503 </para> |
469 | 504 |
470 <para> | 505 <para> |
471 Если директива указана с флагом <literal>if_not_empty</literal> (1.1.11), | 506 Если директива указана с <literal>if_not_empty</literal> (1.1.11), |
472 то такой параметр с пустым значением передаваться на сервер не будет: | 507 то такой параметр с пустым значением передаваться на сервер не будет: |
473 <example> | 508 <example> |
474 fastcgi_param HTTPS $https if_not_empty; | 509 fastcgi_param HTTPS $https if_not_empty; |
475 </example> | 510 </example> |
476 </para> | 511 </para> |
477 | 512 |
478 </directive> | 513 </directive> |
479 | 514 |
480 | 515 |
481 <directive name="fastcgi_pass"> | 516 <directive name="fastcgi_pass"> |
482 <syntax><value>fastcgi-server</value></syntax> | 517 <syntax><value>адрес</value></syntax> |
483 <default/> | 518 <default/> |
484 <context>location, if в location</context> | 519 <context>location</context> |
485 | 520 <context>if в location</context> |
486 <para> | 521 |
487 Директива задаёт адрес FastCGI-сервера. | 522 <para> |
488 Адрес может быть указан в виде доменного имени или адреса и порта, например, | 523 Задаёт адрес FastCGI-сервера. |
489 <example> | 524 Адрес может быть указан в виде доменного имени или адреса, и порта, например, |
490 fastcgi_pass localhost:9000; | 525 <example> |
491 </example> | 526 fastcgi_pass localhost:9000; |
492 или в виде пути unix сокета: | 527 </example> |
493 <example> | 528 или в виде пути UNIX-сокета: |
494 fastcgi_pass unix:/tmp/fastcgi.socket; | 529 <example> |
495 </example> | 530 fastcgi_pass unix:/tmp/fastcgi.socket; |
496 </para> | 531 </example> |
497 | 532 </para> |
498 <para> | 533 |
499 Если доменное имя резолвится в несколько адресов, то все они будут | 534 <para> |
500 использоваться в режиме round-robin. | 535 Если доменному имени соответствует несколько адресов, то все они будут |
501 И кроме того, адрес может быть | 536 использоваться по очереди (round-robin). |
537 И, кроме того, адрес может быть | |
502 <link doc="ngx_http_upstream_module.xml">группой серверов</link>. | 538 <link doc="ngx_http_upstream_module.xml">группой серверов</link>. |
503 </para> | 539 </para> |
504 | 540 |
505 </directive> | 541 </directive> |
506 | 542 |
507 | 543 |
508 <directive name="fastcgi_pass_header"> | 544 <directive name="fastcgi_pass_header"> |
509 <syntax><value>имя</value></syntax> | 545 <syntax><value>поле</value></syntax> |
510 <default/> | 546 <default/> |
511 <context>http, server, location</context> | 547 <context>http</context> |
512 | 548 <context>server</context> |
513 <para> | 549 <context>location</context> |
514 Директива разрешает передавать клиенту запрещённые для передачи строки. | 550 |
551 <para> | |
552 Разрешает передавать от FastCGI-сервера клиенту | |
553 <link id="fastcgi_hide_header">запрещённые для передачи</link> поля заголовка. | |
515 </para> | 554 </para> |
516 | 555 |
517 </directive> | 556 </directive> |
518 | 557 |
519 | 558 |
520 <directive name="fastcgi_read_timeout"> | 559 <directive name="fastcgi_read_timeout"> |
521 <syntax><value>время</value></syntax> | 560 <syntax><value>время</value></syntax> |
522 <default>60</default> | 561 <default>60s</default> |
523 <context>http, server, location</context> | 562 <context>http</context> |
524 | 563 <context>server</context> |
525 <para> | 564 <context>location</context> |
526 Директива задаёт таймаут при чтении ответа FastCGI-сервера. | 565 |
566 <para> | |
567 Задаёт таймаут при чтении ответа FastCGI-сервера. | |
527 Таймаут устанавливается не на всю передачу ответа, | 568 Таймаут устанавливается не на всю передачу ответа, |
528 а только между двумя операциями чтения. | 569 а только между двумя операциями чтения. |
529 Если по истечении этого времени FastCGI-сервер ничего не передаст, | 570 Если по истечении этого времени FastCGI-сервер ничего не передаст, |
530 то nginx закрывает соединение. | 571 соединение закрывается. |
531 </para> | 572 </para> |
532 | 573 |
533 </directive> | 574 </directive> |
534 | 575 |
535 | 576 |
536 <directive name="fastcgi_send_timeout"> | 577 <directive name="fastcgi_send_timeout"> |
537 <syntax><value>время</value></syntax> | 578 <syntax><value>время</value></syntax> |
538 <default>60</default> | 579 <default>60s</default> |
539 <context>http, server, location</context> | 580 <context>http</context> |
540 | 581 <context>server</context> |
541 <para> | 582 <context>location</context> |
542 Директива задаёт таймаут при передаче запроса FastCGI-серверу. | 583 |
584 <para> | |
585 Задаёт таймаут при передаче запроса FastCGI-серверу. | |
543 Таймаут устанавливается не на всю передачу запроса, | 586 Таймаут устанавливается не на всю передачу запроса, |
544 а только между двумя операциями записи. | 587 а только между двумя операциями записи. |
545 Если по истечении этого времени FastCGI-сервер не примет новых данных, | 588 Если по истечении этого времени FastCGI-сервер не примет новых данных, |
546 то nginx закрывает соединение. | 589 соединение закрывается. |
547 </para> | 590 </para> |
548 | 591 |
549 </directive> | 592 </directive> |
550 | 593 |
551 | 594 |
553 <syntax><value>regex</value></syntax> | 596 <syntax><value>regex</value></syntax> |
554 <default/> | 597 <default/> |
555 <context>location</context> | 598 <context>location</context> |
556 | 599 |
557 <para> | 600 <para> |
558 Директива задаёт регулярное выражение, выделяющее | 601 Задаёт регулярное выражение, выделяющее значение для переменной |
559 значение для переменной $fastcgi_path_info. | 602 <var>$fastcgi_path_info</var>. |
560 Регулярное выражение должно иметь два выделения, из которых первое | 603 Регулярное выражение должно иметь два выделения, из которых первое |
561 становиться значением переменной $fastcgi_script_name, | 604 становится значением переменной <var>$fastcgi_script_name</var>, |
562 а второе — значением переменной $fastcgi_path_info. | 605 а второе—значением переменной <var>$fastcgi_path_info</var>. |
563 Например, при таких настройках | 606 Например, при таких настройках |
564 <example> | 607 <example> |
565 location ~ ^(.+\.php)(.*)$ { | 608 location ~ ^(.+\.php)(.*)$ { |
566 fastcgi_split_path_info ^(.+\.php)(.*)$; | 609 fastcgi_split_path_info ^(.+\.php)(.*)$; |
567 fastcgi_param SCRIPT_FILENAME /path/to/php$fastcgi_script_name; | 610 fastcgi_param SCRIPT_FILENAME /path/to/php$fastcgi_script_name; |
568 fastcgi_param PATH_INFO $fastcgi_path_info; | 611 fastcgi_param PATH_INFO $fastcgi_path_info; |
569 </example> | 612 </example> |
570 и запросе "/show.php/article/0001" параметр SCRIPT_FILENAME будет | 613 и запросе “<literal>/show.php/article/0001</literal>” |
571 равен "/path/to/php/show.php", а параметр PATH_INFO — "/article/0001". | 614 параметр <literal>SCRIPT_FILENAME</literal> будет равен |
615 “<literal>/path/to/php/show.php</literal>”, а параметр | |
616 <literal>PATH_INFO</literal>—“<literal>/article/0001</literal>”. | |
572 </para> | 617 </para> |
573 | 618 |
574 </directive> | 619 </directive> |
575 | 620 |
576 | 621 |
577 <directive name="fastcgi_store"> | 622 <directive name="fastcgi_store"> |
578 <syntax> | 623 <syntax> |
579 <literal>on</literal> | | 624 <literal>on</literal> | |
580 <literal>off</literal> | | 625 <literal>off</literal> | |
581 <value>строка</value></syntax> | 626 <value>строка</value></syntax> |
582 <default>off</default> | 627 <default>off</default> |
583 <context>http, server, location</context> | 628 <context>http</context> |
584 | 629 <context>server</context> |
585 <para> | 630 <context>location</context> |
586 Директива разрешает сохранение на диск файлов. | 631 |
587 Параметр "on" сохраняет файлы в соответствии с путями, указанными в директивах | 632 <para> |
633 Разрешает сохранение на диск файлов. | |
634 Параметр <literal>on</literal> сохраняет файлы в соответствии с путями, | |
635 указанными в директивах | |
588 <link doc="ngx_http_core_module.xml" id="alias"/> или | 636 <link doc="ngx_http_core_module.xml" id="alias"/> или |
589 <link doc="ngx_http_core_module.xml" id="root"/>. | 637 <link doc="ngx_http_core_module.xml" id="root"/>. |
590 Параметр "off" запрещает сохранение файлов. | 638 Параметр <literal>off</literal> запрещает сохранение файлов. |
591 Кроме того, имя файла можно явно задать с помощью строки с переменными: | 639 Кроме того, имя файла можно задать явно с помощью строки с переменными: |
592 <example> | 640 <example> |
593 fastcgi_store /data/www$original_uri; | 641 fastcgi_store /data/www$original_uri; |
594 </example> | 642 </example> |
595 </para> | 643 </para> |
596 | 644 |
597 <para> | 645 <para> |
598 Время модификации файлов выставляется согласно полученной строке | 646 Время изменения файлов выставляется согласно полученному полю |
599 "Last-Modified" в заголовке ответа. | 647 <header>Last-Modified</header> в заголовке ответа. |
600 Ответ записывается во временный файл, а потом этот файл переименовывается. | 648 Ответ сначала записывается во временный файл, а потом этот файл |
649 переименовывается. | |
601 Начиная с версии 0.8.9, временный файл и постоянное место хранения ответа | 650 Начиная с версии 0.8.9, временный файл и постоянное место хранения ответа |
602 могут располагаться на разных файловых системах, но нужно учитывать, | 651 могут располагаться на разных файловых системах, но нужно учитывать, |
603 что в этом случае вместо дешёвой операции переименовывания в пределах | 652 что в этом случае вместо дешёвой операции переименовывания в пределах |
604 одной файловой системы файл копируется с одной файловой системы на другую. | 653 одной файловой системы файл копируется с одной файловой системы на другую. |
605 Поэтому лучше, если сохраняемые файлы будут находиться на той же файловой | 654 Поэтому лучше, если сохраняемые файлы будут находиться на той же файловой |
607 <link id="fastcgi_temp_path"/> для данного location. | 656 <link id="fastcgi_temp_path"/> для данного location. |
608 </para> | 657 </para> |
609 | 658 |
610 <para> | 659 <para> |
611 Директиву можно использовать для создания локальных копий статических | 660 Директиву можно использовать для создания локальных копий статических |
612 неизменяемых файлов, например: | 661 неизменяемых файлов, например, так: |
613 <example> | 662 <example> |
614 location /images/ { | 663 location /images/ { |
615 root /data/www; | 664 root /data/www; |
616 open_file_cache_errors off; | 665 open_file_cache_errors off; |
617 error_page 404 = /fetch$uri; | 666 error_page 404 = /fetch$uri; |
618 } | 667 } |
619 | 668 |
620 location /fetch/ { | 669 location /fetch/ { |
621 internal; | 670 internal; |
622 | 671 |
623 fastcgi_pass backend:9000; | 672 fastcgi_pass backend:9000; |
624 ... | 673 ... |
625 | 674 |
626 fastcgi_store on; | 675 fastcgi_store on; |
627 fastcgi_store_access user:rw group:rw all:r; | 676 fastcgi_store_access user:rw group:rw all:r; |
628 fastcgi_temp_path /data/temp; | 677 fastcgi_temp_path /data/temp; |
629 | 678 |
630 alias /data/www/; | 679 alias /data/www/; |
631 } | 680 } |
632 </example> | 681 </example> |
633 </para> | 682 </para> |
634 | 683 |
635 </directive> | 684 </directive> |
636 | 685 |
637 | 686 |
638 <directive name="fastcgi_store_access"> | 687 <directive name="fastcgi_store_access"> |
639 <syntax><value>пользователи</value>:<value>права</value> ...</syntax> | 688 <syntax><value>пользователи</value>:<value>права</value> ...</syntax> |
640 <default>user:rw</default> | 689 <default>user:rw</default> |
641 <context>http, server, location</context> | 690 <context>http</context> |
642 | 691 <context>server</context> |
643 <para> | 692 <context>location</context> |
644 Директива задаёт права доступа для создаваемых файлов и каталогов, например, | 693 |
645 <example> | 694 <para> |
646 fastcgi_store_access user:rw group:rw all:r; | 695 Задаёт права доступа для создаваемых файлов и каталогов, например, |
647 </example> | 696 <example> |
648 </para> | 697 fastcgi_store_access user:rw group:rw all:r; |
649 | 698 </example> |
650 <para> | 699 </para> |
651 Если заданы какие-либо права для groups или all, то права для user | 700 |
701 <para> | |
702 Если заданы какие-либо права для <literal>group</literal> или | |
703 <literal>all</literal>, то права для <literal>user</literal> | |
652 указывать необязательно: | 704 указывать необязательно: |
653 <example> | 705 <example> |
654 fastcgi_store_access group:rw all:r; | 706 fastcgi_store_access group:rw all:r; |
655 </example> | 707 </example> |
656 </para> | 708 </para> |
657 | 709 |
658 </directive> | 710 </directive> |
659 | 711 |
660 | 712 |
661 <directive name="fastcgi_temp_path"> | 713 <directive name="fastcgi_temp_path"> |
662 <syntax><value>путь</value> [<value>уровень1</value> [<value>уровень2</value> [<value>уровень3</value>]]]</syntax> | 714 <syntax> |
715 <value>путь</value> | |
716 [<value>уровень1</value> | |
717 [<value>уровень2</value> | |
718 [<value>уровень3</value>]]]</syntax> | |
663 <default>fastcgi_temp</default> | 719 <default>fastcgi_temp</default> |
664 <context>http, server, location</context> | 720 <context>http</context> |
665 | 721 <context>server</context> |
666 <para> | 722 <context>location</context> |
667 Директива задаёт имя каталога для хранения временных файлов | 723 |
724 <para> | |
725 Задаёт имя каталога для хранения временных файлов, | |
668 полученных от другого сервера. | 726 полученных от другого сервера. |
669 В каталоге может использоваться иерархия подкаталогов до трёх уровней. | 727 В каталоге может использоваться иерархия подкаталогов до трёх уровней. |
670 Например, при такой конфигурации | 728 Например, при такой конфигурации |
671 <example> | 729 <example> |
672 fastcgi_temp_path /spool/nginx/fastcgi_temp 1 2; | 730 fastcgi_temp_path /spool/nginx/fastcgi_temp 1 2; |
673 </example> | 731 </example> |
674 имя временного будет такого вида: | 732 временный файл будет следующего вида: |
675 <example> | 733 <example> |
676 /spool/nginx/fastcgi_temp/7/45/00000123457 | 734 /spool/nginx/fastcgi_temp/<emphasis>7</emphasis>/<emphasis>45</emphasis>/00000123<emphasis>457</emphasis> |
677 </example> | 735 </example> |
678 </para> | 736 </para> |
679 | 737 |
680 </directive> | 738 </directive> |
681 | 739 |
682 </section> | 740 </section> |
683 | 741 |
684 | 742 |
685 <section name="Параметры, передаваемые FastCGI-серверу" id="parameters"> | 743 <section id="parameters" name="Параметры, передаваемые FastCGI-серверу"> |
686 | 744 |
687 <para> | 745 <para> |
688 Строки заголовка HTTP запроса передаются FastCGI-серверу в виде параметров. | 746 Поля заголовка HTTP-запроса передаются FastCGI-серверу в виде параметров. |
689 В приложениях и скриптах, запущенных в виде FastCGI-сервера, | 747 В приложениях и скриптах, запущенных в виде FastCGI-сервера, |
690 эти параметры обычно доступны в виде переменных среды. | 748 эти параметры обычно доступны в виде переменных среды. |
691 Например, строка заголовка "User-Agent" передаётся как параметр | 749 Например, поле заголовка <header>User-Agent</header> передаётся как параметр |
692 HTTP_USER_AGENT. | 750 <literal>HTTP_USER_AGENT</literal>. |
693 Кроме строк заголовка HTTP запроса, можно передавать произвольные параметры | 751 Кроме полей заголовка HTTP-запроса можно передавать произвольные параметры |
694 с помощью директивы <link id="fastcgi_param"/>. | 752 с помощью директивы <link id="fastcgi_param"/>. |
695 </para> | 753 </para> |
696 | 754 |
697 </section> | 755 </section> |
698 | 756 |
699 | 757 |
700 <section name="Встроенные переменные" id="variables"> | 758 <section id="variables" name="Встроенные переменные"> |
701 | 759 |
702 <para> | 760 <para> |
703 В модуле ngx_http_fastcgi_module есть встроенные переменные, | 761 В модуле <literal>ngx_http_fastcgi_module</literal> есть встроенные переменные, |
704 которые можно использовать для формирования параметров с помощью директивы | 762 которые можно использовать для формирования параметров с помощью директивы |
705 <link id="fastcgi_param"/>: | 763 <link id="fastcgi_param"/>: |
706 <list type="bullet"> | 764 <list type="tag"> |
707 | 765 |
708 <listitem> | 766 <tag-name><var>$fastcgi_script_name</var></tag-name> |
709 <para> | 767 <tag-desc> |
710 $fastcgi_script_name, эта переменная равна URI запроса | 768 <para> |
711 или же, если URI заканчивается слэшом, то — URI запроса плюс имя | 769 URI запроса или же, если URI заканчивается слэшом, |
712 индексного файла, задаваемого директивой <link id="fastcgi_index"/>. | 770 то URI запроса, дополненное именем индексного файла, задаваемого директивой |
713 Эту переменную можно использовать для задания параметра SCRIPT_FILENAME | 771 <link id="fastcgi_index"/>. |
714 и PATH_TRANSLATED, используемых, в частности, для определения имени | 772 Эту переменную можно использовать для задания параметров |
715 скрипта в PHP. Например, для запроса "/info/" и при использовании директив | 773 <literal>SCRIPT_FILENAME</literal> и <literal>PATH_TRANSLATED</literal>, |
716 <example> | 774 используемых, в частности, для определения имени скрипта в PHP. |
717 fastcgi_index index.php; | 775 Например, для запроса “<literal>/info/</literal>” и при использовании |
718 fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name; | 776 директив |
719 </example> | 777 <example> |
720 параметр SCRIPT_FILENAME будут равен "/home/www/scripts/php/info/index.php". | 778 fastcgi_index index.php; |
779 fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name; | |
780 </example> | |
781 параметр <literal>SCRIPT_FILENAME</literal> будет равен | |
782 “<literal>/home/www/scripts/php/info/index.php</literal>”. | |
721 </para> | 783 </para> |
722 | 784 |
723 <para> | 785 <para> |
724 При использовании директивы <link id="fastcgi_split_path_info"/> | 786 При использовании директивы <link id="fastcgi_split_path_info"/> |
725 переменная $fastcgi_script_name равна значению первого выделения, | 787 переменная <var>$fastcgi_script_name</var> равна значению первого выделения, |
726 задаваемого этой директивой. | 788 задаваемого этой директивой. |
727 </para> | 789 </para> |
728 </listitem> | 790 </tag-desc> |
729 | 791 |
730 <listitem> | 792 <tag-name><var>$fastcgi_path_info</var></tag-name> |
731 $fastcgi_path_info, эта переменная равна значению второго выделения, | 793 <tag-desc>значение второго выделения, задаваемого директивой |
732 задаваемого директивой <link id="fastcgi_split_path_info"/>. | 794 <link id="fastcgi_split_path_info"/>. |
733 Эту переменную можно использовать для задания параметра PATH_INFO. | 795 Эту переменную можно использовать для задания параметра |
734 </listitem> | 796 <literal>PATH_INFO</literal>. |
797 </tag-desc> | |
735 | 798 |
736 </list> | 799 </list> |
737 </para> | 800 </para> |
738 | 801 |
739 </section> | 802 </section> |