postgres_connect_timeout
Директива `postgres_connect_timeout` задаёт максимальное время ожидания подключения к базе данных PostgreSQL до срабатывания таймаута.
Описание
Директива 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; убедитесь, что задаёте значение соответственно, чтобы избежать путаницы.