Перевод(ы): English - Русский
Установка и конфигурирование FastCGI для nginx
FastCGI для nginx
Для того чтобы запусить FastCGI с веб-сервером nginx, вам необходимо установить пакет fcgiwrap. В большинстве документаций, просто описаны только основные аспекты конфигурации. Например: требуется наличие параметров SCRIPT_FILENAME и SCRIPT_NAME в конфигурации nginx.
Для того чтобы завершить установку, должны быть установлены пакеты, для Debian Squeeze это nginx 0.7.67-3 and fcgiwrap 1.0-1.
# apt-get install fcgiwrap
Настройка nginx для работы с FastCGI
Нужно добавить location в файл cgi-bin конфигурации nginx proper place.
location ~ ^/cgi-bin/.*\.cgi$ {
gzip off;
root /var/www/nginx-default;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
# include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
# According to RFC3875 (https://tools.ietf.org/html/rfc3875#section-4.1.14) in SERVER_NAME
# we should put actual hostname user came to. For nginx it is in $host
# This will allow to run multihost instances
fastcgi_param SERVER_NAME $host;
}Большая часть fastcgi_param взята из интернет источников. Наиболее важными параметрами являются:
- root /var/www/nginx-default;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- fastcgi_param SCRIPT_NAME $fastcgi_script_name;
Переменная root задаёт директорию, где находится скрипт cgi-bin.
Если вы не указали путь в переменной root, то nginx будет использовать значение по умолчанию /usr/local/nginx/html/cgi-bin/ScriptName.cgi. Вы не сможете использовать полный путь в переменной SCRIPT_FILENAME из fastcgi_param. Это не будет работать.
Переменная fastcgi_param SCRIPT_FILENAME задаёт полный путь к скрипту. (путь_к_корню+имя_скрипта)
Переменная fastcgi_param SCRIPT_NAME задаёт ТОЛЬКО имя скрипта.
Наиболее важными являются параметры: root, fastcgi_param SCRIPT_FILENAME, fastcgi_param SCRIPT_NAME.
См. также
?CategorySqueeze CategorySoftware CategorySystemAdministration
