前言

本节内容是关于实现nginx代理访问redis服务,由于在实际生产开发环境中,我们并不想将我们的中间键服务暴露在公网环境中,或者只能在内网环境中使用,例如本节内容,我们将redis安装到本地环境,但是又有需要临时在公网环境查看我们的redis数据,那该如何解决这个问题呢?假设A、B俩台服务器,在同一局域网内,A服务器只能内网访问,安装了redis服务,B服务器可以外网访问,那就可以在B服务器安装nginx服务,通过nginx代理转发我们的内网redis服务,这样就是可以实现临时的内网服务访问。通过nginx代理redis服务,主要使用的是nginx的stream模块。关于redis服务与nginx服务安装,请参考作者往期博客内容。

正文

  • 安装stream模块

①进入nginx编译目录

nginx lua redis效率 nginx 读取redis_nginx lua redis效率

②配置stream模块到指定目录

./configure --prefix=/opt/nginx --with-stream

nginx lua redis效率 nginx 读取redis_服务器_02

 ③编译安装

make && make install

nginx lua redis效率 nginx 读取redis_服务器_03

nginx lua redis效率 nginx 读取redis_服务器_04

  • 开启redis服务

①开启redis服务

nginx lua redis效率 nginx 读取redis_服务器_05

②开放redis6379端口访问或者直接关闭防火墙
#开放端口访问
firewall-cmd --permanent --add-port=6379/tcp
#重新加载防火墙策略
firewall-cmd --reload
#关闭防火墙
systemctl stop firewalld


nginx lua redis效率 nginx 读取redis_devops_06

③ip地址

nginx lua redis效率 nginx 读取redis_redis_07

  • 在nginx.conf配置文件中配置redis代理访问 
①进入nginx配置文件目录

nginx lua redis效率 nginx 读取redis_nginx_08

②配置添加redis代理,要保证我们的nginx所在的服务器能够访问redis服务器的地址和端口192.168.110.95:6379
#redis代理测试
stream {
     upstream redis {
        #redis真实访问地址
        server  192.168.110.95:6379 max_fails=3 fail_timeout=30s;
     }

     server {
          #外网监听地址
          listen 2000;
          #代理连接超时时间
          proxy_connect_timeout 5s;
          #代理超时时间
          proxy_timeout 300s;
          #代理名称
          proxy_pass redis;
     }
}


nginx lua redis效率 nginx 读取redis_nginx lua redis效率_09

③检查nginx配置文件

nginx lua redis效率 nginx 读取redis_devops_10

④重启nginx

nginx lua redis效率 nginx 读取redis_nginx_11

  •  测试nginx代理访问redis

①nginx服务地址

nginx lua redis效率 nginx 读取redis_devops_12

②使用redisinsight连接工具连接redis

nginx lua redis效率 nginx 读取redis_redis_13

 ③连接成功

nginx lua redis效率 nginx 读取redis_服务器_14

结语

至此,关于nginx代理访问redis服务的内容到这里就结束了,下期见。。。