postgres_result_timeout
`postgres_result_timeout` 指令定义在 PostgreSQL 查询超时前等待结果的最长时间。
PostgreSQL module for NGINX
·
httpserverlocation
语法postgres_result_timeout time;
默认值none
上下文http, server, location
参数1
说明
postgres_result_timeout 指令用于为通过 NGINX 发出的 PostgreSQL 查询指定超时值。这有助于控制 NGINX 在放弃并终止查询进程之前应等待 PostgreSQL 服务器响应的时间。通过设置此参数,用户可以缓解查询无限期挂起的情况,避免导致资源耗尽或 Web 应用程序性能下降。
超时值以毫秒为单位,可在 http、server 或 location 上下文中指定。该指令接受一个参数,即处理查询结果集的时间限制。如果在达到指定超时时间之前未收到响应,NGINX 将中止该操作并向客户端返回错误,以确保应用程序保持响应性。在高负载或查询效率低下导致数据库操作可能比预期耗时更长的场景中,这一点尤为有用。
为确保应用程序性能最佳,必须平衡超时值。超时设置过短可能导致不必要的查询终止,设置过长则可能在流量高峰时导致长时间等待。用户应监控查询性能,并根据其特定应用需求和数据库行为调整超时。
配置示例
location /data {
postgres_pass my_upstream;
postgres_query SELECT * FROM my_table;
postgres_result_timeout 1000;
}⚠
将超时设置得过短可能导致合法查询失败,从而增加应用的错误率。
⚠
在不了解底层查询性能的情况下调整超时,可能导致意外行为或响应变慢。