Nginx基于1.9实现四层负载均衡

网络模型

https://images2015.cnblogs.com/blog/784487/201701/784487-20170118164512515-2009100776.png

https://i-blog.csdnimg.cn/blog_migrate/3ce5d67113e9b832db86773f5189202f.png

Socket入门

什么是Socket?

Socket就是为网络服务提供的一种机制。

通讯的两端都有Sokcet

网络通讯其实就是Sokcet间的通讯

数据在两个Sokcet间通过IO传输。

 

TCP与UDP在概念上的区别:

udp: a、是面向无连接, 将数据及源的封装成数据包中,不需要建立连接

    b、每个数据报的大小在限制64k内

    c、因无连接,是不可靠协议

    d、不需要建立连接,速度快

tcp

a、建议连接,形成传输数据的通道.

 

    b、在连接中进行大数据量传输,以字节流方式

    c 通过三次握手完成连接,是可靠协议

    d 必须建立连接m效率会稍低

 

Http协议组成部分

http协议基于TCP协议封装成超文本传输协议,http分为请求与响应,http协议分为请求参数和方法类型、请求头、请求体,响应分为 响应状态、响应头、响应体等。

四层负载均衡与七层负载均衡区别

四层负载均衡,在网络模型中的传输层中,基于主要是基于tcp协议报文实现负载均衡(比如LVS、haproxy就是四层负载均衡器),使用改写报文的源地址和目的地址。

 

七层负载均衡,在网络模型中应用层中,基于URL或者HTTP协议实现负载均衡,Web服务器。

环境准备

测试环境 CentOS7

Nginx1.9开始支持tcp层的转发,通过stream实现的,而socket也是基于tcp通信。

stream模块默认不安装的,需要手动添加参数:–with-stream,根据自己系统版本选择nginx1.9或以上版本

./configure --add-module=../yaoweibin-nginx_tcp_proxy_module-121c026

安装软件

 

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转发和负载均衡的支持

编译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-121c026/tcp_1_8.patch

如果报错

-bash: patch: 未找到命令 执行 yum -y install patch 安装即可。

4.编译Nginx

./configure --add-module=../yaoweibin-nginx_tcp_proxy_module-121c02

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_modu件le-121c026

Vi

5.继续 make && make install

6.修改Nginx.conf配置文件


worker_processes  1;

events {

    worker_connections  1024;

}

### 修改为TCP模块

tcp {

  

   ### 定义多个上游服务器

   upstream  test{

      ### 定义TCP模块上游服务器

      server 192.168.5.165:80001;

      server 192.168.5.165:80002;

   }

    server {

        listen       9999;

        server_name  192.168.212.137;

         ### 反向代理upstream

        proxy_pass test;

    }

}

7.启动Nginx服务器

 

8.创建两个Sokcet服务器端

 

 Ngxin连接反向代理TCP服务器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值