uwsgi_pass

Директива `uwsgi_pass` перенаправляет запросы на сервер приложений uWSGI. — NGINX HTTP Core

uwsgi_pass
locationif in location
Синтаксисuwsgi_pass URL;
По умолчаниюnone
Контекстlocation, if in location
МодульNGINX HTTP Core
Аргументы1

Описание

Директива `uwsgi_pass` используется в конфигурациях NGINX для указания адреса сервера uWSGI, обеспечивая связь между NGINX и приложениями uWSGI. Когда поступает запрос, соответствующий указанному location-блоку, NGINX пересылает данные запроса на заданный сервер uWSGI, используя либо TCP-сокет, либо Unix-доменный сокет, в зависимости от формата указанного адреса. Это обеспечивает бесшовную интеграцию веб‑приложений, написанных на таких языках, как Python, Ruby или других, поддерживаемых uWSGI. Директива принимает один аргумент, который может иметь форму IP-адреса и порта (для TCP-связи) или пути к Unix-сокету. Например, `uwsgi_pass 127.0.0.1:8000;` направляет запросы к серверу uWSGI, работающему на localhost на порту 8000. Альтернативно можно использовать `uwsgi_pass unix:/path/to/socket;` для отправки запросов через Unix-сокет, что может улучшить производительность за счёт меньших накладных расходов по сравнению с TCP. С помощью `uwsgi_pass` также можно настроить дополнительные параметры, такие как установка таймаутов и передача переменных в приложение uWSGI через NGINX. Крайне важно, чтобы сервер uWSGI был правильно настроен для обработки входящих запросов в соответствии со спецификациями приложения, включая маршрутизацию и логику обработки запросов, поскольку в этом контексте NGINX выступает лишь как обратный прокси.

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

location /app {
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:8000;
}

Убедитесь, что сервер uWSGI запущен и доступен по указанному URL.

Если используется Unix socket, убедитесь, что процесс NGINX имеет разрешение на доступ к файлу сокета.

Не забудьте включить `uwsgi_params`, чтобы корректно передать необходимые параметры серверу uWSGI.