scgi_pass
Директива `scgi_pass` пересылает запросы на SCGI-сервер. — NGINX HTTP Core
Описание
Директива `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 получить к нему доступ.