Комментарий к FastCGIO модулю.
Модуль собирается по умолчанию. Используется только remote FastCGI.
Ограничение (разумные):
1) заголовок запроса (FastCGI параметры и HTTP_*) не может быть больше 64K.
2) заголовок ответа должен быть в одной FastCGI записи (8K).
При превышении в логах будет alert. Если вы их увидите, сообщайте, будем
бороться.
Тестировался с PHP-4.3.10. При сборке не нужно указывать --enable-discard-path.
Можно указать --enable-force-cgi-redirect, но, честно говоря, не знаю,
нужно ли это в ситуации remote FastCGI.
Директивы:
location / {
fastcgi_pass localhost:9000;
#fastcgi_pass unix:/tmp/socket;
fastcgi_root /path/to/php;
fastcgi_index index.php;
}
fastcgi_root означает префикс на стороне FastCGI. Если запрос /some/uri,
то полный путь скрипта - /path/to/php/some/uri, этот путь
передаётся в параметре PATH_TRANSALTED.
fastcgi_root задают индексное имя для запросов типа /some/uri/.
Имя может быть только одно.
Многие директивы fastcgi аналогичны proxy:
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_header_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_busy_buffers_size 32k;
fastcgi_temp_file_write_size 32k;
fastcgi_temp_path /var/tmp;
fastcgi_next_upstream error timeout invalid_header http_500
http_404;
по умолчанию
fastcgi_next_upstream error timeout;
Директивы, специфичные для fastcgi:
fastcgi_x_powered_by off; # по умолчанию on
fastcgi_params
remote_addr
server_name
server_addr # лишний сисколл на запрос
server_port
scrip_name
server_protocol
server_software
gateway_interface
request_uri
redirect_status # нужен, если php собран с
#--enable-force-cgi-redirect
;
fastcgi_params позволяет передавать серверу только часть параметров,
по умолчания передаются только
fastcgi_params remote_addr server_name server_port
scrip_name request_uri redirect_status;
Все директивы, кроме fastcgi_pass, могут задаваться на уровне http,
server, location. fastcgi_pass - только на уровне location.
Игорь Сысоев
http://sysoev.ru