使用nginx转发tcp请求,解决访问网易云内网的redis

记录一下如何使用nginx转发访问网易云内网的redis

网易云的redis只能通过内网访问,要想通过外网连接网易云内网的redis,还需要有一台网易云的服务器,并且与网易云内网的redis在同一子网下,刚开始我使用的是rinetd,不过rinetd这个东西比较坑,访问多了或者时间长了就会使得CPU占用率非常高,rinetd的日志也会占满整个磁盘空间,很不好用。
rinetd使用方法
后来找到解决方案使用nginx代替rinetd。
Nginx从1.9之后的版本开始支持stream转发。

配置方案

要求nginx版本大于1.9,
在nginx.conf添加以下,要求和http{}同级
nginx.conf一般在/etc/nginx/目录下

1
2
3
4
5
6
7
8
9
10
11
stream {
upstream redis {
server *redis-addres*:6379 max_fails=3 fail_timeout=30s; #*redis-addres*替换为真实地址
}
server {
listen 6379; # 代理的端口
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass redis;
}
}

重启nginx即可
可使用RedisDesktopManager可视化软件进行连接测试

额外记录一下如何清理nginx日志

1
> access.log
打赏

请我喝杯咖啡吧~

支付宝
微信