需求
Nginx 并不支持tcp协议,所以后端的一些基于TCP的业务就只能通过其他高可用负载软件来完成了,如Haproxy。但在1.90发布后增加了tcp代理模块,而老版本nginx需通过附加nginx_tcp_proxy_module实现TCP代理
环境
[root@nginx ~]#nginx -Vnginx version:nginx/1.6.0
built by gcc 4.4.720120313 (Red Hat 4.4.7-17) (GCC)
TLS SNI supportenabled
configurearguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module--with-ipv6
步骤
1.下载nginx_tcp_proxy_module-master.zip
https://github.com/yaoweibin/nginx_tcp_proxy_module
2.解压
unzip nginx_tcp_proxy_module-master.zip
3.平滑添加TCP代理模块
patch -p1 < /root/nginx_tcp_proxy_module-master/tcp.patch
./configure --user=www --group=www--prefix=/usr/local/nginx --with-http_stub_status_module --with-ipv6--add-module=/root/nginx_tcp_proxy_module-master
make #敲黑板,不要make install!!!
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.0719.old
cp objs/nginx/usr/local/nginx/sbin/
make upgrade
4.验证
nginx -V
配置
在nginx.conf文件末尾,即http{}后添加
tcp { upstream search { server 10.45.149.215:8111; check interval=3000 rise=2 fall=5 timeout=1000; } server { listen 8111; proxy_pass search; } }
|
配置检查
nginx -t
平滑重启
/etc/init.d/nginx reload
验证端口是否生效
netstat -nuplt
参考
http://yaoweibin.github.io/nginx_tcp_proxy_module/README.html#ngx_tcp_proxy_module
http://zhangge.net/4856.html
https://github.com/yaoweibin/nginx_tcp_proxy_module