$fastcgi_script_name

Переменная $fastcgi_script_name содержит имя скрипта, обрабатываемого FastCGI-сервером. — NGINX Core (HTTP)

$fastcgi_script_name NGINX Core (HTTP)

Описание

Переменная $fastcgi_script_name используется в конфигурации NGINX для получения имени скрипта, который передаётся FastCGI-серверу. Эта переменная в основном устанавливается при использовании директивы `fastcgi_pass`, которая перенаправляет запросы на FastCGI-сервер. При обработке входящего запроса NGINX извлекает часть URI, соответствующую скрипту, из запроса и устанавливает значение этой переменной соответственно. Это гарантирует, что FastCGI-приложение получит корректный путь к скрипту для обработки, что критично для приложений, которые полагаются на определённые механизмы маршрутизации, например PHP- или Python-приложений, работающих под FastCGI. В типичном использовании $fastcgi_script_name будет возвращать значение типа `/index.php` или `/app/script.php`, отражая скрипт, который должен быть выполнен. Если скрипт не найден или запрос не нацелен на скрипт, переменная может быть пустой. Поэтому эта переменная важна не только для маршрутизации к правильному скрипту, но и играет критическую роль в приложениях, где доступ к файлам строго контролируется структурой URL.

Пример конфига

location / {
    include fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

Подсистема

http

Кэшируется

Нет

Контексты

http, server, location

Убедитесь, что `fastcgi_param SCRIPT_FILENAME` правильно задан так, чтобы включать document root и имя скрипта, иначе FastCGI-сервер может не найти файл.

Помните, что если запрос не указывает на конкретный скрипт или скрипт не существует, $fastcgi_script_name может быть пустым, что приведёт к непредвиденным ошибкам.

При изменении request URI убедитесь, что $fastcgi_script_name соответственно обновлён, чтобы отразить эти изменения.