美文网首页阿里云
使用Nginx替代rinetd访问阿里云Redis

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

作者: xo1988 | 来源:发表于2018-02-02 16:10 被阅读23次

    服务使用的阿里云的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:这下可以安心了,不用在烧香了~~

    相关文章

      网友评论

        本文标题:使用Nginx替代rinetd访问阿里云Redis

        本文链接:https://www.haomeiwen.com/subject/qjbwgttx.html