如何在NGINX上为PostgreSQL配置proxy_pass?

如何在NGINX上为PostgreSQL配置proxy_pass?,postgresql,nginx,Postgresql,Nginx,我在端口15432的远程计算机上启动了PostgreSQL server。我想将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

我在端口15432的远程计算机上启动了PostgreSQL server。我想将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
我还尝试在
listen5432
之后添加sslword,但没有成功


如何正确配置NGINX?

可能会删除
http://
,因为它是一个TCP连接(不是http连接),然后将
so\u keepalive=on
添加到
listen 5432以便连接保持打开状态


也许你必须使用
stream
而不是
http
block:

使用
stream
的想法听起来不错。谢谢你的链接。根据此主题,我无法为流指定
server\u name
。因此,我唯一可以做的事情就是在我的NGINX配置中使用
stream
进行端口转发。我想这就是答案。非常感谢。