记一次Nginx代理Mysql服务的经历

背景:

根据组长背景描述,具备以下前提

1. Mysql服务器为 某A云厂商的RDS SAAS服务,但是不开通外网服务

2. EC2 服务器一台,某A云厂商LaaS服务,也不开通外网

3.阿里云服务器一台,这台服务器有服务需要连接Mysql服务

需求: 让阿里云服务器中的服务,可以访问到Mysql服务。

解决方案:在A云厂商的EC2服务器中,部署Nginx服务,有Nginx服务代理Mysql服务

前提需要:EC2服务器能够访问Mysql服务,阿里云服务器能够访问EC2服务,它们之间的网络可以连通

方案搭建

注意Nginx,尽量不要使用yum方式来安装,为什么呢?

Mysql服务不是Http连接,需要使用Upstream这个模块,yum方式安装的nginx不好再次去配置和安装upstream,尽量使用编译方式来安装;本文以编译方式来安装

1. 编译安装Nginx

需要确保具备wget这个命令

cd /tmp/

wget http://nginx.org/download/nginx-1.22.1.tar.gz

tar xf nginx-1.22.1.tar.gz

2.查漏补缺安装

我下载好后直接编译

sudo ./configure --prefix=/usr/local/nginx-my-stream/nginx1.22.1 --with-stream --with-http_stub_status_module --with-http_ssl_module

报错如下 ,缺少gcc等编译工具

可以按照提示,缺少什么就安装什么,可以直接以空格分割 一次性安装完毕

sudo yum -y install gcc

sudo yum -y install gcc-c++

sudo yum -y install openssl openssl-devel

sudo yum -y install openssl*

sudo yum install -y zlib-devel

3.编译

sudo ./configure --prefix=/usr/local/nginx-my-stream/nginx1.22.1 --with-stream --with-http_stub_status_module --with-http_ssl_module --without-http_rewrite_module

编译成功是不带有error灯关键字的,哪里缺少就会到第二步,yum install -y 缺少的模块 

4. 安装

输入如下命令

sudo make

sudo make install

看到如下界面就是配置成功,如果有error关键字,就重新看下详细信息,我当时没有加sudo 就报错了

5.启动

通过上述安装成功的命令可以查看到,已经安装到下述这个目录中,配置文件在这个目录下的conf下

/usr/local/nginx-my-stream

进入/usr/local/nginx-my-stream/nginx1.22.1/sbin/nginx目录,使用命令

1. sudo /usr/local/nginx-my-stream/nginx1.22.1/sbin/nginx

2. 检查服务是否启动 ps -aux | grep nginx 

当然应该也可以配置成systemctl方式启动,我懒得配了,有兴趣的同学可以再去研究

6.配置Nginx代理Mysql服务

这个代码段可以放到http代码段的上面,要和http这个块平级

#mysql  地址映射
stream {

    upstream mysql {
        server IP地址:3306 weight=1 max_fails=2 fail_timeout=30s;   #原Mysql地址
    }

    server {
        listen 3306;
        proxy_connect_timeout 30s;
        proxy_timeout 30s;
        proxy_pass mysql;
    }
}

7.测试连接

此时在阿里云服务器中安装yum install mariadb105-server -y,用以连接Mysql测试

输入命令,根据命令输入密码,即可通过跳板机连接到RDS Mysql数据库 

mysql -h  跳板机IP  -P 3306 -u root -p

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值