Nginx实现正向代理数据库

解决场景:目标数据库使用白名单策略,只有在白名单内的IP地址才能与其进行连接。但进行本地开发的时候,本地网络的IP不是固定的,几乎每日都活变动,每次变动都需要在目标数据库白名单内添加新的本地网路IP,影响开发效率。

1、解决方案:

为解决这个问题,采用在拥有固定公网IP的云服务器上通过Nginx正向代理目标数据库。

后续只需要将此云服务器的公网IP添加到目标数据库的白名单内,本地开发时直接连接云服务器上的正向代理即可一劳永逸。

2、解决步骤

1、下载、解压Nginx到云服务器

2、配置Nginx

配置内容如下,stream配置与http、events配置同级

# 数据库代理
stream {
    server {
        #注意端口不能跟mysql监听的一样
        listen 3309;
        proxy_pass db;
    }
    # 负载的实际端口和地址,可以其他能访问的地址,不一定是本机
    upstream db {
        server 目标数据库主机地址:目标数据库端口;#如:123.123.132.123:3306
    }
}

3、启动Nginx

4、云服务器放行端口

放行Nginx配置的监听端口保持一致即可,如上面配置的“3309”

5、本地连接数据库代理

如配置了数据库代理的云服务器公网IP为:666.666.666.666

那么数据库代理的连接信息如下:

数据库主机:666.666.666.666

数据库端口:3309(与Nginx配置的监听端口保持一致)

数据库用户、密码:保持不变,与目标数据库的登录信息一致

文章不足之处还请斧正!

本文By:NonNullPointer --2023/08/05

最后修改:2023 年 08 月 05 日
如果觉得我的文章对你有用,请随意赞赏