【Nginx】四层负载均衡配置
一、概述
Nginx1.9之后,开始支持四层负载均衡,需要引入额外的模块
二、配置
2.1 环境准备
#测试环境 CentOS7
#Nginx1.9开始支持tcp层的转发,通过stream实现的,而socket也是基于tcp通信。
2.2 安装及配置
1).下载Nginx
wget http://nginx.org/download/nginx-1.9.10.tar.gz
#作用:实现反向代理、负载负载库
2).下载nginx_tcp_proxy_module 插件
wget https://github.com/yaoweibin/nginx_tcp_proxy_module/tarball/master
tar -zxvf master
#nginx 支持TCP转发和负载均衡的支持
3).编译Nginx
#编译Nginx
#1.解压nginx文件
tar -zxvf nginx-1.9.10.tar.gz
#2.进入到Nginx目录
cd nginx-1.9.10
#3.下载tcp.patch最新补丁
patch -p1 < ../yaoweibin-nginx_tcp_proxy_module-b8a3028/tcp.patch
#如果报错
-bash: patch: 未找到命令 执行 yum -y install patch 安装即可。
#4.编译Nginx
./configure --add-module=../yaoweibin-nginx_tcp_proxy_module-121c026
#5.
make && make install
#如果报错
In file included from ../nginx_tcp_proxy_module-master/ngx_tcp.h:32,
from ../nginx_tcp_proxy_module-master/ngx_tcp.c:5:
../nginx_tcp_proxy_module-master/ngx_tcp_upstream.h:144: error: expected specifier-qualifier-list before 'ngx_resolver_addr_t'
make[1]: *** [objs/addon/nginx_tcp_proxy_module-master/ngx_tcp.o] Error 1
make[1]: Leaving directory `/opt/apps_install/nginx-1.9.9'
make: *** [build] Error 2
# 修改第三方模块包里的头文件,ngx_tcp_upstream.h 144 行将ngx_resolver_addr_t 改为 ngx_addr_t
cd /usr/local/yaoweibin-nginx_tcp_proxy_module-121c026
vi ngx_tcp_upstream.h
:set number #使vi编辑器显示行数
#5.继续 make && make install
4).修改Nginx.conf配置文件
worker_processes 1;
events {
worker_connections 1024;
}
### 修改为TCP模块
tcp {
### 定义多个上游服务器
upstream haoworld{
### 定义TCP模块上游服务器
server 192.168.0.104:8001;
server 192.168.0.104:8002;
}
server {
listen 9999;
server_name 192.168.140.133;
### 反向代理upstream
proxy_pass haoworld;
}
}
5).测试
测试之前关闭linux防火墙
需要用TCP/UDP测试工具 测试
************ **供自己学习查阅使用(我只想静静的写篇博客,自我总结下[手动狗头]) by Pavel** *********