一、实现原理
二、安装nginx
参考地址【1】:https://www.runoob.com/linux/nginx-install-setup.html
参考地址【2】:https://www.cnblogs.com/boonya/p/7907999.html
- 安转nginx依赖包
yum -y install make gcc-c++ pcre pcre-devel zlib zlib-devel libtool openssl openssl-devel
- 下载nginx包
下载地址:http://nginx.org/download/,注意:选择1.9以上版本,只有1.9以上版本才支持--with-stream。
cd /usr/local/src
wget http://nginx.org/download/nginx-1.9.10.tar.gz
- 解压
tar zxvf nginx-1.9.10.tar.gz
- 安装nginx,注意:编译时添加参数--with-stream
cd nginx-1.9.10
./configure --with-stream
make & make install
- 查看安转目录
whereis nginx
- 验证是否安装成功
/usr/local/nginx/sbin/nginx -v
三、配置并启动nginx
设置代理,将连接服务器【117.73.3.71:3306】请求转发到内网数据库【172.31.0.17:3306】。
- 修改配置文件
stream {
upstream rdsmysql {
hash $remote_addr consistent;
server 172.31.0.17:3306 weight=5 max_fails=3 fail_timeout=30s;
}
server {
listen 3306;#数据库服务器监听端口
proxy_connect_timeout 10s;
proxy_timeout 300s;#设置客户端和代理服务之间的超时时间,如果5分钟内没操作将自动断开
proxy_pass rdsmysql;
}
}
- 启动nginx
cd /usr/local/nginx/sbin
./nginx
- 验证启动是否成功
ps aux|grep nginx
- 重新载入配置文件
/usr/local/nginx/sbin/nginx -s reload
- 查看服务器是否对3306端口监听
netstat -nap|grep 3306
- 停止nginx
/usr/local/nginx/sbin/nginx -s stop
四、通过nginx代理连接MySQL
使用本地工具Navicat连接MySQL
连接失败原因:ECS服务器本身的防火墙未开放3306端口。注意:ECS的安全组只是针对外网访问做了限制,服务器本身仍然有限制,共两层限制。
- 添加需要监听的端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT