nginx 转发 redis 
                                                    
                        
                    
                    
  
                    
                    场景
本地开发,需要连接测试环境的 redis,但 redis 是内网的,不对外网开放.
方案
利用 nginx 进行反向代理,把请求转发到内网的 redis 上.
找到测试环境的一台 nginx,配置反向代理.
修改 nginx.conf
http {
    ...
}
# 注意跟 http 同级
stream {
     upstream redis {
         server  10.8.xx.xxx:6379 max_fails=3 fail_timeout=30s;
     }
     server {
          listen 16379;
          proxy_connect_timeout 1s;
          proxy_timeout 3s;
          proxy_pass redis;
     }
}如是不想修改 nginx.conf,而是在 conf.d 添加新的配置文件 redis.conf,则需要把 include 指令从 http 移出来  
这样保证添加的
redis.conf跟http同级
http {
    ...
}
include /etc/nginx/conf.d/*.conf若遇到 nginx: [emerg] unknown directive "stream" in /usr/local/openresty/nginx/conf/conf.d/redis.conf:1 错误
是因为 stream 模块没加载到,手动加载下
load_module /usr/lib64/nginx/modules/ngx_stream_module.so;
http {
    ...
}如果不知道 ngx_stream_module.so 的路径在那里,则全局搜一下
$ find / -name 'ngx_stream_module'最后,重新加载 nginx 下配置文件
$ nginx -s reload
# 查看代理端口是否成功
$ ss -atn | grep 16379如果觉得不错,可以给我一个 STAR.
本作品采用《CC 协议》,转载必须注明作者和本文链接
 
           Codcodog 的个人博客
 Codcodog 的个人博客
         
                     
                     
             
             
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: