Перевод(ы): 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