postgres_connect_timeout

Директива `postgres_connect_timeout` задаёт максимальное время ожидания подключения к базе данных PostgreSQL до срабатывания таймаута.

Синтаксисpostgres_connect_timeout time;
По умолчаниюnone
Контекстhttp, server, location
Аргументы1

Описание

Директива postgres_connect_timeout используется в модуле PostgreSQL для NGINX, чтобы задать период тайм-аута для установления соединения с сервером PostgreSQL. Задаваемая в миллисекундах, директива позволяет администраторам избежать бесконечного ожидания при попытках подключения, что потенциально может привести к неотзывчивому поведению веб-приложений. Если соединение не будет установлено в указанный интервал, NGINX зарегистрирует ошибку и вернёт клиенту ответ с ошибкой, освобождая ресурсы, которые в противном случае были бы заняты во время попытки подключения.

Эту директиву можно задавать в различных контекстах, включая http, server или location. Гибкость размещения даёт возможность тонко настраивать время ожидания исходящих соединений к разным серверам бэкенда баз данных в зависимости от соответствующих контекстов. Для пользователей NGINX, особенно в условиях высокой нагрузки или при наличии периодических сетевых проблем, настройка этого значения может принести значительные преимущества в производительности и повысить надёжность взаимодействия с базой данных. Если директива не установлена, соединение будет ждать неопределённо долго, что при определённых условиях может привести к задержкам и ухудшению пользовательского опыта.

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

location /api/data {
    postgres_pass my_postgres;
    postgres_connect_timeout 5000;
    postgres_query SELECT * FROM my_table;
}

Установка слишком короткого timeout может привести к частым ошибкам подключения, особенно в медленных сетях.

Значение timeout указано в milliseconds; убедитесь, что задаёте значение соответственно, чтобы избежать путаницы.

← Ко всем директивам