postgres_keepalive
`postgres_keepalive` 指令在 NGINX 中配置 PostgreSQL 连接的 keepalive 设置。
PostgreSQL module for NGINX
·
upstream
语法postgres_keepalive off | max=count [mode=single|multi] [overflow=ignore|reject];
默认值max=10 mode=single overflow=ignore
上下文upstream
参数1+
说明
postgres_keepalive 指令在 upstream 上下文中使用,用于管理到 PostgreSQL 数据库服务器的持久连接的存续时间和数量。通过配置此指令,用户可以通过维护一个连接池来优化资源使用,从而避免为每个请求反复建立连接所带来的性能开销。该指令接受多个参数,其中最重要的是 max,它指定每个工作进程可打开的最大 keepalive 连接数。这限制了并发连接数,以防止资源耗尽。mode 参数决定如何选择连接以供使用:single 允许每个请求仅使用一个连接,而 multi 则可在某个请求中使用多个连接,从而优化并发的数据库操作。
此外,overflow 参数用于控制当达到最大连接限制时服务器应如何处理请求。如果设置为 ignore,当连接池已满时服务器会在请求后关闭连接;而 reject 则会以 503 Service Unavailable 响应拒绝该请求。该指令加强了连接处理机制,使通过 NGINX 与 PostgreSQL 交互时具有更好的可伸缩性和性能。
配置示例
upstream postgres_backend {
postgres_server 127.0.0.1:5432 dbname=mydb user=myuser password=mypassword;
postgres_keepalive max=15 mode=multi overflow=ignore;
}⚠
请确保根据服务器容量设置 max 以避免连接过载。
⚠
如果将 overflow 设置为 reject,请仔细检查应用逻辑以优雅地处理可能的 503 响应。
⚠
根据应用需求调整 mode 以优化并行数据库请求的性能。