Персональный | |
Директивы модуля ngx_http_fastcgi_module
22.05.2008 Модуль ngx_http_fastcgi_module позволяет передавать запросы удалённому FastCGI-серверу. СодержаниеПример конфигурацииДирективы
Встроенная переменная Пример конфигурацииДирективыsyntax: fastcgi_buffer_size размер default: fastcgi_buffer_size 4k/8k context: http, server, location Директива задаёт размер буфера, в который будет читаться первая часть ответа, получаемого от FastCGI-сервера. В этой части ответа находится, как правило, небольшой заголовок ответа. По умолчанию размер буфера равен размеру одного буфера в директиве fastcgi_buffers, однако его можно сделать меньше. syntax: fastcgi_buffers число размер default: fastcgi_buffers 8 4k/8k context: http, server, location Директива задаёт число и размер буферов для одного соединения, в которые будет читаться ответ, получаемый от FastCGI-сервера. По умолчанию размер одного буфера равен размеру страницы, в зависимости от платформы это или 4K, или 8K. syntax: fastcgi_connect_timeout время default: fastcgi_connect_timeout 60 context: http, server, location Директива задаёт таймаут для соединения с FastCGI-сервером. Необходимо иметь в виду, что этот таймаут не может быть больше 75 секунд. syntax: fastcgi_index имя default: нет context: http, server, location Директива задаёт имя файла, который при создании переменной $fastcgi_script_name будет добавляться после URI, если URI заканчивается слэшом. syntax: fastcgi_hide_header имя context: http, server, location nginx не передаёт клиенту строки заголовка "Status" и "X-Accel-..." из ответа FastCGI-сервера. Директива fastcgi_hide_header задаёт дополнительные строки. Если же строки нужно наоброт разрешить, то нужно воспользоваться директивой fastcgi_pass_header. syntax: fastcgi_ignore_client_abort [on|off] default: fastcgi_ignore_client_abort off context: http, server, location Директива определяет, закрывать ли соединение с FastCGI-сервером в случае, если клиент закрыл соединение, не дождавшись ответа. syntax: fastcgi_intercept_errors on|off default: fastcgi_intercept_errors off context: http, server, location Директива определяет, передавать ли клиенту ответы FastCGI-сервера с кодом больше или равные 400 или же перенаправлять их на обработку nginx'у с помощью директивы error_page. syntax: fastcgi_next_upstream [error|timeout|invalid_header|http_500|http_503|http_404|off] default: fastcgi_next_upstream error timeout context: http, server, location Директива определяет, в каких случаях запрос будет передан следующему серверу:
Необходимо понимать, что передача запроса следующему серверу возможна только при условии, что клиенту ещё ничего не передавалось. То есть, если ошибка или таймаут возникли в середине передачи ответа, то исправить это уже невозможно. syntax: fastcgi_param параметр значение default: нет context: http, server, location Директива задаёт параметр, который будут передаваться FastCGI-серверу. В качестве значения можно использовать текст, переменные и их комбинации. Директивы наследуются с предыдущего уровня при условии, что на данном уровне не описаны свои директивы fastcgi_param. Ниже приведён пример минимально необходимых параметров для PHP: fastcgi_param SCRIPT_FILENAME /home/www/scripts/php$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; Параметр SCRIPT_FILENAME используется в PHP для определения имени скрипта, а в параметре QUERY_STRING передаются параметры запроса. Если скрипты обрабатывают запросы POST, то нужны ещё три параметра: fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length;
Если PHP был собран с параметром конфигурации
fastcgi_param REDIRECT_STATUS 200; syntax: fastcgi_pass fastcgi-server default: нет context: location, if в location Директива задаёт адрес FastCGI-сервера. Адрес может быть указан в виде доменного имени или адреса и порта, например,
или в виде пути unix сокета:
Если доменное имя резолвится в несколько адресов, то все они будут использоваться в режиме round-robin. И кроме того, адрес может быть группой серверов. syntax: fastcgi_pass_header имя context: http, server, location Директива разрешает передавать клиенту запрещённые для передачи строки. syntax: fastcgi_read_timeout время default: fastcgi_read_timeout 60 context: http, server, location Директива задаёт таймаут при чтении ответа FastCGI-сервера. Таймаут устанавливается не на всю передачу ответа, а только между двумя операциями чтения. Если по истечении этого времени FastCGI-сервер ничего не передаст, то nginx закрывает соединение. syntax: fastcgi_redirect_errors on|off Директива переименована в fastcgi_intercept_errors. syntax: fastcgi_send_timeout время default: fastcgi_send_timeout 60 context: http, server, location Директива задаёт таймаут при передаче запроса FastCGI-серверу. Таймаут устанавливается не на всю передачу запроса, а только между двумя операциями записи. Если по истечении этого времени FastCGI-сервер не примет новых данных, то nginx закрывает соединение. syntax: fastcgi_store on | off | строка default: fastcgi_store off context: http, server, location Директива разрешает сохранение на диск файлов. Параметр "on" сохраняет файлы в соответствии с путями, указаными в директивах alias или root. Параметр "off" запрещает сохранение файлов. Кроме того, имя файла можно явно задать с помощью строки с переменными: fastcgi_store /data/www$original_uri; Время модификации файлов выставляется согласно полученной строке "Last-Modified" в заголовке ответа. Для сохранения файлов необходимо, чтобы они находился на том же разделе, что и каталог с временными файлами, задаваемый директивой fastcgi_temp_path для данного location. Директиву можно использовать для создания локальных копий статических неизменяемых файлов, например: syntax: fastcgi_store_access пользователи:права [пользователи:права] ... default: fastcgi_store_access user:rw context: http, server, location Директива задаёт права доступа для создаваемых файлов и каталогов, например, fastcgi_store_access user:rw group:rw all:r; Если заданы какие-либо права для groups или all, то права для user указывать необязательно: fastcgi_store_access group:rw all:r; syntax: fastcgi_temp_path путь [ уровень1 [ уровень2 [ уровень3 ] ] ] default: fastcgi_temp_path fastcgi_temp context: http, server, location Директива задаёт имя каталога для хранения временных файлов полученных от другого сервера. В каталоге может использоваться иерархия подкаталогов до трёх уровней. Например, при такой конфигурации имя временного будет такого вида:fastcgi_temp_path /spool/nginx/fastcgi_temp 1 2; /spool/nginx/fastcgi_temp/7/45/00000123457 Параметры, передаваемые FastCGI-серверуСтроки заголовка HTTP запроса передаются FastCGI-серверу в виде параметров. В приложениях и скриптах, запущенных в виде FastCGI-сервера, эти параметры обычно доступны в виде переменных среды. Например, строка заголовка "User-Agent" передаётся как параметр HTTP_USER_AGENT. Кроме строк заголовка HTTP запроса, можно передавать произвольные параметры с помощью директивы fastcgi_param. Встроенная переменнаяВ модуле ngx_http_fastcgi_module есть одна встроенная переменная, которую можно использовать для формирования параметров с помощью директивы fastcgi_param:
(C) Игорь Сысоев |