使用Nginx实现公网访问Redis 4.0/5.0的单机/主备/Proxy集群实例

司徒翼
2023-12-01

Ecs购买&Redis实例购买

一.安装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地址,具体可从缓存实例详情页面的“连接信息”区域获取。

配置信息的输入位置请参考下图。

图4 Nginx配置

重启Nginx服务。
service nginx restart

验证启动是否成功。
netstat -an|grep 808

图5 启动Nginx及验证
8080端口在监听状态,Nginx启动成功。

三.通过Nginx访问Redis
登录虚拟私有云控制台,确认跳板机的安全组规则是否放开,如果没有,则需要为安全组放开8080这个端口。
图6 添加安全组入方向规则

在公网环境中打开Redis命令行界面,输入如下命令,登录与查询都正常,大功告成。
说明:
公网环境已参考Redis-cli连接中相关步骤,安装Redis-cli客户端。
安装客户端
安装Redis-cli客户端详请参考安装客户端。
以下步骤以客户端安装在Linux系统上为例进行描述。

登录弹性云服务器。
执行以下命令,获取Redis客户端源码,下载路径为http://download.redis.io/releases/redis-5.0.8.tar.gz。

wget http://download.redis.io/releases/redis-5.0.8.tar.gz

执行如下命令,解压Redis客户端源码包。
tar -xzf redis-5.0.8.tar.gz

进入Redis目录并编译Redis客户端源码。
cd redis-5.0.8

make

cd src

连接Redis非Cluster集群实例。
如果是Redis 3.0、Redis 4.0单机/主备/Proxy集群、Redis 5.0单机/主备/Proxy集群实例,请执行以下操作。

执行以下命令连接Redis实例。
./redis-cli -h {dcs_instance_address} -p 6379

其中{dcs_instance_address}为Redis实例的IP地址/域名,“6379”为Redis实例的端口。IP地址/域名和端口获取见1。

说明:
如果是Redis Proxy集群实例,{dcs_instance_address}可以为Redis实例的“连接地址”、“域名地址”、“后端服务地址”,获取方法,在控制台单击实例进入实例详情页面即可查看,如图1所示。

“连接地址”和“域名地址”为负载均衡器地址,系统将请求分发到不同的Proxy节点上。
使用“后端服务地址”,可以直接连接到指定的Proxy节点。

cd /root/redis-5.0.8/src

./redis-cli -h {myeip} -p {port} -a {mypassword}

其中,命令中的{myeip}为主机连接地址,需要填写ECS的弹性IP,端口需要填写ECS上Nginx的监听端口。

如下图所示,设置的1个监听端口分别为8080,对应后端1个Redis实例。

图7 通过Nginx代理连接第一个Redis实例

至此,就完成了通过跳板机的搭建,实现公网访问Redis 4.0和Redis 5.0的操作了。
更多操作详见

https://support.huaweicloud.com/bestpractice-dcs/dcs-bp-0514001.html

 类似资料: