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