如何在NGINX上为PostgreSQL配置proxy_pass



我有一个PostgreSQL服务器在端口15432上的远程机器上启动。我想配置NGINX,使数据库可通过主机db.domain.my和端口5432远程使用。我尝试的配置是:

server {
listen 5432;
server_name db.domain.my;
location / {
proxy_pass http://127.0.0.1:15432/;
}
}

当我尝试使用psql远程连接数据库时,我得到错误:

$ psql -h db.domain.my -U myuser
psql: received invalid response to SSL negotiation: H

我还尝试在listen 5432之后添加ssl单词,但没有成功。

如何正确配置NGINX?

也许删除http://,因为它是TCP连接(而不是HTTP连接),并将so_keepalive=on添加到listen 5432;,以便连接保持打开。

也许您必须使用stream而不是http块:https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/

最新更新