scgi_pass
Директива `scgi_pass` пересылает запросы на SCGI-сервер.
Описание
Директива scgi_pass в NGINX используется для передачи запросов на SCGI (Simple Common Gateway Interface) бэкенд. Обычно она применяется для маршрутизации HTTP-запросов к веб‑приложениям, которые обмениваются данными по протоколу SCGI. Когда запрос совпадает с блоком location, где определена scgi_pass, NGINX формирует SCGI-запрос и пересылает входящие HTTP-данные на указанный SCGI-сервер.
С помощью scgi_pass возможны разные варианты конфигурации. Аргумент этой директивы — адрес SCGI-сервера, который можно задавать либо как IP-адрес и порт (например, 127.0.0.1:4000), либо как адрес Unix-сокета (например, unix:/var/run/scgi.sock). NGINX затем формирует SCGI-запрос в соответствии с требованиями указанного сервера, отправляя необходимые заголовки и поддерживая соединение до получения ответа или истечения времени ожидания запроса.
scgi_pass можно помещать внутри блоков location или даже внутри условных блоков if в этих location, что даёт гибкость в том, как маршрутизируются запросы на основе URI или других условий. Также часто его используют совместно с другими директивами для дополнительной функциональности, например для буферизации или установки таймаутов запроса.
Пример конфига
location /app {
scgi_pass 127.0.0.1:4000;
include scgi_params;
}Убедитесь, что SCGI-сервер запущен и доступен из NGINX.
Использование неправильного протокола (например, HTTP вместо SCGI) может привести к ошибкам в связи.
Если используются Unix sockets, убедитесь, что права доступа к сокету позволяют пользователю NGINX получить к нему доступ.