前言
最近公司有一个项目甲方为了便宜购买了华为云的ECS服务器与RDS云数据库(Mysql)进行项目部署,实际部署数据库时发现,华为云的数据库需要购买公网IP才能使用Navicate连接数据库(不可思议的我还提交工单确认了一下以为是我没操作明白导致外网不能访问)。这不是妥妥的捆绑销售耍流氓!
后来因为ECS与RDS可以在内网条件下可以访问到而ECS是有外网IP的,我就想能否通过ECS访问到RDS从而白嫖,网上一查果然有大神遇到了,特此表示感谢也记录一下
白嫖指南
其实本质就是使用nignx进行代理,当我们访问ECS服务器的IP与指定端口时代理到处于同一华为云域下的RDS内网IP与端口上
bash
server {
listen 3306;#数据库服务器监听端口
proxy_connect_timeout 10s;
proxy_timeout 300s;#设置超时时间,如果5分钟内没操作将自动断开
proxy_pass 192.168.*.*:3306; #这里是RDS内网IP+外放端口
}
上面这段通过宝塔修改nginx配置文件,具体位置如下图:
上面的配置需要服务器和数据库处在同域下,同时还在要安全组和宝塔放一下端口