【云小课】应用平台第31课 使用Nginx实现公网访问Redis 4.0/5.0的单机/主备/Proxy集群实例
下图中安装了Nginx代理工具的ECS就是一台跳板机,它与DCS Redis实例在相同VPC,可通过子网IP访问Redis实例。为ECS绑定弹性IP后,公网可以访问ECS,Nginx支持监听多个端口,并将请求内容转发到不同的后端Redis实例。
图1 通过Nginx访问VPC内DCS Redis
购买一台ECS
-
确认Redis缓存实例所在的虚拟私有云。如下图所示,Redis缓存实例所在的虚拟私有云为“vpc-demo”。
-
购买一台同在“vpc-demo”的ECS,并为其绑定一个弹性公网IP,按需选择带宽。
图3 ECS信息
安装Nginx
购买ECS后,需要在ECS上安装Nginx,本文以ECS操作系统为Centos7.x为例进行安装,不同操作系统命令稍有不同。
-
执行以下命令,添加Nginx到yum源。
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
-
添加完之后,执行以下命令,查看是否已经添加成功。
yum search nginx
-
添加成功之后,执行以下命令,安装Nginx。
sudo yum install -y nginx
-
执行以下命令安装stream模块。
yum install nginx-mod-stream --skip-broken
-
启动Nginx并设置为开机自动运行。
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
-
在本地浏览器中输入服务器地址(ECS公网IP地址),查看是否安装成功。
如果出现下面页面,则表示安装成功。
配置Nginx
Nginx安装后,需要配置请求转发规则,告诉Nginx哪个端口收到的请求,应该转发到后端哪个Redis实例。
-
修改配置文件。
cd /etc/nginx
vi nginx.conf
配置示例如下,如果有多个redis实例需要公网连接,可以配置多个server,在proxy_pass中配置Redis实例连接地址。
stream { server { listen 8080; proxy_pass 192.168.0.5:6379; } server { listen 8081; proxy_pass 192.168.0.6:6379; } }
说明:proxy_pass参数配置值为同一vpc下的Redis实例的IP地址,具体可从缓存实例详情页面的“连接信息”区域获取。
-
重启Nginx服务。
service nginx restart
-
验证启动是否成功。
netstat -an|grep 808
8080和8081两个端口都在监听状态,Nginx启动成功。
通过Nginx访问Redis
-
登录虚拟私有云控制台,确认跳板机的安全组规则是否放开,如果没有,则需要为安全组放开8080和8081两个端口。
图4 添加安全组入方向规则 -
在公网环境中打开Redis命令行界面,输入如下命令,登录与查询都正常,大功告成。(公网环境需要参考Redis-cli连接 中相关步骤,安装Redis-cli客户端。)
./redis-cli -h {myeip} -p {port} -a {mypassword}
其中,命令中的{myeip}为主机连接地址,需要填写ECS的弹性IP,端口需要填写ECS上Nginx的监听端口。
如下图所示,设置的2个监听端口分别为8080和8081,对应后端2个Redis实例。
图5 通过Nginx代理连接第一个Redis实例 图6 通过Nginx代理连接第二个Redis实例至此,就完成了通过跳板机的搭建,实现公网访问Redis 4.0和Redis 5.0的操作了。
- 点赞
- 收藏
- 关注作者
评论(0)