nginx 代理postgresql
首先,Nginx为我们的数据库增加了额外的安全层。Nginx提供了一整套的选项,这使得管理访问和保护数据库变得很容易。例如,我们可以配置为只有一小部分IP地址可以访问数据库。
PostgreSQL不使用HTTP或HTTPS,而是使用一个新块儿stream。
- stream
该指令定义了stream服务器。与http块平级,定义在main块中。
stream {server {......}}
- server
该指令定义一个虚拟主机,与http块中的server类似。我们可以在stream块中定义多个server块。
stream {server {......}server {......}}
- listen
该指令定义虚拟主机server要监听的socket的地址和端口。 - allow配置允许访问的IP
作用域:stream, server
# 允许192.168.110.1访问allow 192.168.110.1;# 允许192.168.110.1到192.168.255.254allow 192.168.110.0/16;# 允许192.168.110.1到192.168.110.254allow 192.168.110.0/24;# 允许所有的IP访问allow all;
- deny 配置不可访问ip
作用域:stream, server
# 禁止192.168.110.1访问deny 192.168.110.1;# 禁止192.168.110.1到192.168.255.254deny 192.168.110.0/16;# 禁止192.168.110.1到192.168.110.254deny 192.168.110.0/24;# 禁止所有的IP访问deny all;
- 配置实例
stream {upstream pgsql_socket {server 192.168.214.133:32222;}server {listen 9856;allow 192.168.214.134;deny all;proxy_connect_timeout 60s;proxy_socket_keepalive on;proxy_pass pgsql_socket;#192.168.214.133:32222;}
}
https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/
https://wasi0013.com/2021/11/15/setup-nginx-reverse-proxy-to-access-postgresql-database-remotely/
https://iamgideon.medium.com/configure-a-reverse-proxy-for-postgresql-with-nginx-63c18cefe09