【发布时间】:2020-09-17 07:42:32
【问题描述】:
我正在设置代理服务器来拦截所有流量并将其转发到我的 Postgres 数据库。我正在使用 NGINX 1.19.2 来完成此操作。
我遇到的问题是运行超过 10 分钟的任何查询都会超时。所有较短的查询似乎都运行良好。
这是我的全部nginx.conf:
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
stream {
server {
# Allow up to 30s to establish a connection with the proxied database
proxy_connect_timeout 30s;
proxy_socket_keepalive on;
listen 5432;
proxy_pass my-server.rds.amazonaws.com:5432;
}
}
我已经尝试了几个与 NGINX 代理相关的配置选项(例如 proxy_read_timeout),但是,它们在 stream { } 上下文中不起作用,需要在 http { } 上下文中。为了连接到 Postgres,我不能使用 http。
- 有谁知道我可以做些什么来消除 NGINX 流/代理的 10 分钟连接超时?
- 有没有人知道一个更好的替代方法来完成我正在尝试做的事情,它使用 NGINX 以外的东西?
- 我在 Ubuntu 上尝试了
simpleproxy,但 2 小时后超时(是的,我们必须支持一些长时间运行的查询,例如,VACUUM对十亿多行表的操作)
- 我在 Ubuntu 上尝试了
【问题讨论】: