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/

时间: 2024-08-24 22:25:31

nginx1.9实现TCP代理转发的相关文章

nginx1.9+做TCP代理(端口转发)

如题所示,nginx在1.9版本之后可以充当端口转发的作用,即:访问该服务器的指定端口,nginx就可以充当端口转发的作用将流量导向另一个服务器,同时获取目标服务器的返回数据并返回给请求者.nginx的TCP代理功能跟nginx的反向代理不同的是:请求该端口的所有流量都会转发到目标服务器,而在反向代理中可以细化哪些请求分发给哪些服务器:另一个不同的是,nginx做TCP代理并不仅仅局限于WEB的URL请求,还可以转发如memcached.MySQL等点到点的请求 实现步骤如下: (1)nginx

nginx1.9+新增tcp/udp代理stream

[[email protected] nginx-1.12.1]# ./configure --help --help print this message --prefix=PATH set installation prefix --sbin-path=PATH set nginx binary pathname --modules-path=PATH set modules path --conf-path=PATH set nginx.conf pathname --error-log-

iOS进阶之TCP代理鉴权过程

这段时间接触了网络代理,而自己的任务是完成TCP和UDP的网络代理,所以在这里写些自己的理解吧. 这篇文章先介绍一下TCP代理的鉴权过程(采用的是用户名和密码鉴权),下一篇文章再介绍UDP代理的鉴权过程吧. 自己写了一个sdk的demo,主要使用的是CocoaAsyncSocket里的GCDAsyncSocket和GCDAsyncUdpSocket.其他使用的文件参见下图 创建SJXTCPSocketClient,继承自NSURLProtocol.在 .h 文件中添加关键的成员变量和方法,如下图

nginx TCP 代理& windows傻瓜式安装

一.下载nginx Windows http://nginx.org/en/download.html 二.解压到目录 三.进入目录并start nginx.exe即可启动 cd d:/java/nginx-1.10 start nginx.exe 在windows任务管理器可以看到nginx的进程有两个 输入127.0.0.1访问欢迎页面 四.配置TCP代理 #nginx版本1.10 stream {    upstream proxy_name {        # simple round

nginx安装并支持upstream和tcp代理模块

wget http://nginx.org/download/nginx-1.4.5.tar.gz tar zxvf nginx-1.4.5.tar.gz cd nginx-1.4.5 Git clone https://github.com/yaoweibin/nginx_upstream_check_module.git //upstream模块 git clone https://github.com/yaoweibin/nginx_tcp_proxy_module.git //tcp代理

nginx tcp代理模块nginx_tcp_proxy_module

nginx tcp代理功能由nginx_tcp_proxy_module模块提供,同时监测后端主机状态.该模块包括的模块有: ngx_tcp_module, ngx_tcp_core_module, ngx_tcp_upstream_module, ngx_tcp_proxy_module, ngx_tcp_upstream_ip_hash_module. 安装 https://github.com/yaoweibin/nginx_tcp_proxy_module/archive/master.

nginx : TCP代理和负载均衡的stream模块

一直以来,Nginx 并不支持tcp协议,所以后台的一些基于TCP的业务就只能通过其他高可用负载软件来完成了,比如Haproxy. 这算是一个nginx比较明显的缺憾.不过,在1.90发布后这个认知将得到改写: 2015-04-28 nginx-1.9.0 mainline version has been released, with the stream module for generic TCP proxying and load balancing. nginx-1.9.0 已发布,该

简单测试nginx1.90做TCP协议负载均衡的功能

最近工作中需要做TCP层面的负载均衡,以前网站用的反向代理nginx只支持应用层的负载均衡,对于TCP协议是无能为力的,需要使用LVS(linux虚拟服务器). LVS的特点是高性能和极复杂的配置.对网络环境的要求比较高.最近苦于LVS的配置测试,网上的文档和社区都比较少,按照各种教程配置,TCP报文均无法连通,再往下深究就要去研究公司虚机的网络结构了... 在寻找LVS配置调试方法时,看到一篇最近的文章讲4月28日刚刚发布的nginx1.90,添加了支持TCP协议的负载均衡的,如果只是需要做T

早期nginx tcp代理(基于patch实现)

nginx tcp代理功能由nginx_tcp_proxy_module模块提供,同时监测后端主机状态.该模块包括的模块有: ngx_tcp_module, ngx_tcp_core_module, ngx_tcp_upstream_module, ngx_tcp_proxy_module, ngx_tcp_upstream_ip_hash_module. 1. 安装 1 2 3 4 5 6 # wget http://nginx.org/download/nginx-1.4.4.tar.gz