postgresql内网映射

“双一流”项目postgresql内网映射

【1】centos系统安装postgresql

sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql10-server
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
sudo systemctl enable postgresql-10
sudo systemctl start postgresql-10

【2】修改配置文件允许远程访问

数据存储目录:/var/lib/pgsql/10/data

修改pg_hba.conf

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# 新增下面一行(复制粘贴后将该解释行删掉)
host    all             all              0.0.0.0/0              md5

修改postgresql.conf

# - Connection Settings -
 
listen_addresses = '*'		# what IP address(es) to listen on;
					# comma-separated list of addresses;
					# defaults to 'localhost'; use '*' for all
					# (change requires restart)
port = 5432				# (change requires restart)
max_connections = 100			# (change requires restart)

重启

sudo systemctl restart postgresql-10

ss -tnl查看是否满足远程访问需求

State       Recv-Q Send-Q                                                          Local Address:Port                                                                         Peer Address:Port
LISTEN      0      50                                                                  127.0.0.1:6633                                                                                    *:*
LISTEN      0      128                                                                         *:11211                                                                                   *:*
LISTEN      0      128                                                                         *:111                                                                                     *:*
LISTEN      0      10                                                                  127.0.0.1:6640                                                                                    *:*
LISTEN      0      128                                                                         *:22                                                                                      *:*
LISTEN      0      128                                                                         *:5432                                                                                    *:*
LISTEN      0      100                                                              192.168.1.32:25                                                                                      *:*
LISTEN      0      100                                                                 127.0.0.1:25                                                                                      *:*
LISTEN      0      128                                                                      [::]:111                                                                                  [::]:*
LISTEN      0      128                                                                      [::]:22                                                                                   [::]:*
LISTEN      0      128                                                                      [::]:5432                                                                                 [::]:*

在同网段另一台机器安装postgresql,使用psql远程连接测试同网段远程连接是否成功

【3】配置nginx内网穿透映射

在nginx配置文件的stream模块下,配置

    server {
        listen 0.0.0.0:8082;
        proxy_connect_timeout 30s;
        proxy_timeout 30s;
        proxy_pass 192.168.8.9:5432;
    }

stream模块一般用于TCP/UDP数据流的代理和负载均衡,通过stream模块我们可以代理转发tcp报文。ngx_stream_core_module模块从1.9.0版开始提供。默认情况下,此模块不是构建的,应该使用–with stream配置参数启用它,即我们需要使用./configure --with-stream的方式在编译的时候将stream模块添加进去。stream模块用法和http模块差不多,语法也基本相同。

stream主要有两个可用场景。一是实现流量的代理转发,这里所说的代理转发是只某些端口服务是有源IP地址限制的,例如mysql账户一般是限制了源地址为应用服务器,nginx可能同时是WEB应用服务器,开发人员需要验证一些数据库数据问题,但是账户源地址有限制,此时通过nginx进行数据流转发就可以实现开发终端到mysql的访问。二是实现流量的负载均衡,我们有多个tcp或者udp端口服务(比如DNS),通过stream模块我们可以实现数据流的负载均衡,支持负载均衡算法包括轮询、最小连接数、ip_hash等。

stream块配置与http块并列,在nginx.conf中配置,可以用include方式将我们配置实例单独配置,方便管理。

你可能感兴趣的:(nginx,数据服务,postgresql,服务器,数据库)