安装过程
测试环境 CentOS7
Nginx1.9开始支持tcp层的转发,通过stream实现的,而socket也是基于tcp通信。
stream模块默认不安装的,需要手动添加参数:–with-stream,官方下载地址:download,根据自己系统版本选择nginx1.9或以上版本。
首先安装Nginx
wget http://nginx.org/download/nginx-1.2.4.tar.gz
wget https://github.com/yaoweibin/nginx_tcp_proxy_module/tarball/master
tar xvf nginx-1.2.4.tar.gz
tar xvf master
cd nginx-1.2.4
yum -y install patch
yum -y install pcre-devel
yum install -y zlib-devel
yum -y install openssl openssl-devel
patch -p1 < ../yaoweibin-nginx_tcp_proxy_module-121c026/tcp.patch
yum -y install gcc
./configure --add-module=/root/yaoweibin-nginx_tcp_proxy_module-121c026 这里要使用实际的地址
make
make install
修改配置文件
cd /usr/local/nginx/conf
vim nginx.conf
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
tcp{
upstream test1 {
server 192.10.200.203:9999;
server 192.10.200.111:9999;
check interval=60000 rise=2 fall=5 timeout=10000 type=tcp;
}
server {
listen 9999;
server_name 192.10.200.94;
proxy_pass test1;
so_keepalive on;
tcp_nodelay on;
}
}
参数说明
- interval nginx服务器检测server是否存活的时间间隔,短连接。
在windows下有些指令不支持:
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
stream{
upstream test1 {
server 192.10.200.203:9999;
server 192.10.200.111:9999;type=tcp;
}
server {
listen 9999;
proxy_pass test1;
}
}
启动nginx
cd /usr/local/nginx/sbin/
./nginx
lsof -i :9999
# 重启命令
./nginx -s reload
# 指定conf地址
./nginx -c /usr/local/nginx/conf/nginx.conf
测试
共有3台机器参与测试:
- 192.10.200.94 安装nginx
- 192.10.200.203 监听9999TCP端口
- 192.10.200.111 监听9999TCP端口
建立连接并发送:
在/usr/local/nginx/logs/tcp_access.log
可以看到连接日志。
在连接不中断的情况下,TCP连接会一直连接到固定的服务端。
本文参考文章 :
http://yaoweibin.github.io/nginx_tcp_proxy_module/