代码之家  ›  专栏  ›  技术社区  ›  Fomalhaut

如何在NGINX上为PostgreSQL配置proxy_pass?

  •  0
  • Fomalhaut  · 技术社区  · 4 年前

    我在端口上的远程机器上启动了一台PostgreSQL服务器 15432 .我想配置NGINX,使数据库可以通过主机远程访问 db。领域我的 和港口 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
    

    我还试图补充 ssl 接二连三 listen 5432 没有任何成功。

    如何正确配置NGINX?

    0 回复  |  直到 4 年前
        1
  •  1
  •   qräbnö    4 年前

    也许可以移除 http:// 因为它是一个TCP连接(不是HTTP连接)并添加 so_keepalive=on listen 5432; 所以连接保持开放。

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