码迷,mamicode.com
首页 > 其他好文 > 详细

nginx1.9实现TCP代理转发

时间:2016-04-14 19:37:53      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:nginx1.9实现tcp代理转发

##资料

http://nginx.org/download/nginx-1.9.12.tar.gz


nginx 限制

https://www.nginx.com/resources/admin-guide/restricting-access-tcp/


upstream 

https://www.nginx.com/resources/admin-guide/load-balancer/


动态添加upstream成员

http://nginx.org/en/docs/http/ngx_http_upstream_conf_module.html?_ga=1.41280548.720695661.1457268407


https://www.nginx.com/resources/admin-guide/load-balancer/



##

1.软件下载(目前最稳定版本):

wget http://nginx.org/download/nginx-1.9.12.tar.gz


2.建立nginx运行用户和程序目录:

groupadd www
useradd -s /sbin/nologin -g www www
mkdir -p /usr/local/nginx
mkdir -p /usr/local/pcre
mkdir -p /data/nginxlog/

tar xvf nginx1.9.tar 
cd /workspace/nginx1.9

3.安装pcre

unzip pcre-8.32.zip
cd pcre-8.32 
./configure --prefix=/usr/local/pcre --enable-utf8 --enable-pcregrep-libbz2 --enable-pcregrep-libz
make && make install 
cd ..
pwd

tar -xvf nginx-1.9.12.tar.gz 
cd nginx-1.9.12
./configure --user=www --group=www --prefix=/usr/local/nginx --with-pcre --with-pcre=/workspace/nginx1.9/pcre-8.32 --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module  --with-stream --with-stream_ssl_module --sbin-path=/usr/sbin/nginx --error-log-path=/data/nginxlog/error.log --http-log-path=/data/nginxlog/access.log

4、nginx做个快捷方式

ln -s /usr/local/nginx/sbin/nginx/ /usr/sbin/


5、启动nginx

6、实例配置

准备两个mysql实例,详细如下:

server 192.168.100.70:3306 ;

server 192.168.100.71:3306 ;

案例如下:

1、nginx 主配置文件nginx.conf添加内容如下:
events {
    worker_connections  1024;
}

stream {
   include /usr/local/nginx/conf/stream_conf/*.conf;
   limit_conn_zone $binary_remote_addr zone=ip_addr:10m; 
   #定义限制IP连接数名称,与大小 $binary_remote_addr以2进制存放远程地址
}

2、然后建立相应目录
mkdir -p /usr/local/nginx/conf/stream_conf/

cd /usr/local/nginx/conf/stream_conf/

3、vim mysql3306.conf配置文件如下:

    upstream db {
        hash $remote_addr consistent;		
        #iphash根据访问地址分配到固定的后端服务器。
        server 192.168.100.70:3306;
        server 192.168.100.71:3306;
    }
    server {
        listen 3306;
        proxy_pass db;
        proxy_connect_timeout 1s; 	
        #快速故障检查
        proxy_timeout 3s;			
        #设置超时时间,连接将超时断开。
        proxy_download_rate 1k;     
        #限制下载速度为1k
        proxy_upload_rate   10k;    
        #限制上传速度为10k
        limit_conn ip_addr 1;       
        ##是限制每个IP只能发起1个连接 (addr 要跟 limit_conn_zone 的变量对应)
        allow 127.0.0.1;			
        #acl,设置允许访问IP地址;
        deny all;

    }



健康检查、负载配置参考

https://www.nginx.com/resources/admin-guide/tcp-load-balancing/














本文出自 “杜云龙” 博客,请务必保留此出处http://duyunlong.blog.51cto.com/1054716/1763851

nginx1.9实现TCP代理转发

标签:nginx1.9实现tcp代理转发

原文地址:http://duyunlong.blog.51cto.com/1054716/1763851

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!