使用Nginx替代rinetd访问阿里云Redis

服务使用的阿里云的Redis,但是阿里云的Redis不提供公网地址,因此如果公司内网要访问Redis必然需要一个代理,阿里云官方文档使用的是rinetd,不过不得不说rinetd这个东西比较坑。访问多了或者时间长了就会使得CPU占用率非常高。然后发现redis连不上了,提示Connection reset by peer。
因此就要想办法替换掉rinetd。
以下是使用Nginx的部署方法。
Nginx从1.9之后的版本开始支持stream转发,但是发布的包默认是不支持此功能的,因此想要用上还需要自己编译。

1.先去nginx的官网下载代码,最新分支的地址是 http://hg.nginx.org/nginx, 一般想要编译稳定版,那么就要先在左侧选择branch分支,本教程选择是1.12版本,然后选择zip下载代码。

也可以省事用此地址直接下载:http://hg.nginx.org/nginx/archive/stable-1.12.zip

2.本教程使用的是Centos7.4版本的系统,编译nginx之前当然要安装一下编译环境了。

yum -y install gcc gcc-c++ make zlib-devel pcre-devel openssl-devel unzip

3.解压并编译安装

unzip stable-1.12.zip
cd stable-1.12
cp auto/configure .
./configure \
    --prefix=/etc/nginx                   \
    --sbin-path=/usr/sbin/nginx           \
    --conf-path=/etc/nginx/nginx.conf     \
    --pid-path=/var/run/nginx.pid         \
    --lock-path=/var/run/nginx.lock       \
    --error-log-path=/var/log/nginx/error.log \
    --http-log-path=/var/log/nginx/access.log \
    --with-stream
make
make install

configure中最重要的就是–with-stream,加了这个编译选项才能支持stream转发。

4.nginx配置文件

worker_processes auto;
# error_log /var/log/nginx/error.log info; #上线之后如果不需要日志可以把他关了
events {
    worker_connections  1024;
}
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;
    }
}

5.启动代理~
nginx -c 配置文件的绝对路径,到这里就大功告成了!!

PS:这下可以安心了,不用在烧香了~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xyccstudio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值