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