Перевод(ы): 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 задаёт директорию, где находится скрипт 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