您的位置:首页 > 理论基础 > 计算机网络

nginx1.9实现TCP代理转发

2016-04-14 17:06 886 查看
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/
资料nginx 限制
https://www.nginx.com/resources/admin-guide/restricting-access-tcp/upstream https://www.nginx.com/resources/admin-guide/load-balancer
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  TCP 实现 nginx