手记

【学习打卡】第4天 Nginx学习

课程名称:Java架构师-技术专家

课程章节: 第6周 集群架构:LVS+Nginx高可用集群

主讲老师:慕课讲师团:Geely、风间影月、阿神……

课程内容:

1. 四层、七层和DNS负载均衡

当我们使用集群的时候肯定会涉及到负载均衡,当有大量的并发请求来到服务器的时候,我们能够把这些请求分配到多台计算机节点上,让更多的节点来处理请求和响应,如此就可以大大缩减用户等待请求的时间。

一般选择四层做负载均衡会选择 LVS,七层负载均衡会使用 Nginx。

七层负载均衡基本上都是用于去处理 HTTP 协议的,适用于 Web 服务器。四层负载均衡主要用于针对TCP/UDP协议,四层主要是用于转发请求,而不是去处理的,它可以把用户的请求直接转发给应用去处理,七层是会处理请求的。

1.1、四层负载均衡

四层负载均衡是基于IP+端口的负载均衡,原理是通过转发请求到后台的服务器(只负责转发并且会记录当前连接是由哪个服务器处理的,后续这个连接的请求就会由同一个服务器去处理,其实就相当于是长连接,连接一旦打开就会处于连接的状态),四层是传输层的,主要基于TCP/UDP。

  • F5 硬负载均衡,商业级别的负载均衡
  • LVS 四层负载均衡,Linux内核的负载均衡,和协议没有关系。
  • Haproxy 四层负载均衡,也支持七层负载均衡
  • Nginx 四层负载均衡(stream),主要使用nginx做七层负载均衡

1.2、七层负载均衡

七层负载均衡其实是基于url和ip的负载均衡,是基于应用层的,是针对http协议的负载均衡。

  • Nginx ,可以针对 http协议和邮箱协议做负载均衡。
  • Haproxy 七层负载均衡。
  • apache 七层负载均衡,性能不好。

1.3、DNS 地域负载均衡

会根据DNS的反馈选择最近的服务器。优点是所有的工作都交给DNS服务器去处理,会采取就近原则进行访问,会提高用户访问的速度。

2、OSI网络模型

Nginx是七层负载均衡,LVS是四层负载均衡。OSI网络模型分为七层。用户利用互联网发送消息,会经历这七道工序,另一个用户或服务器接受消息,也会历经这七道工序。

层级 名称 说明
第七层 应用层 与用户行为交互
第六层 表示层 定义数据格式以及数据加密
第五层 会话层 创建、管理以及销毁会话
第四层 传输层 创建、管理请求端到响应端(端到端)的连接
第三层 网络层 请求端的IP地址
第二层 数据链路层 提供介质访问与链路管理
第一层 物理层 传输介质、物理媒介
  • 应用层:应用层为用户提供交互接口,以此为用户提供交互服务,Nginx在本层,为七层负载均衡。

3. Nginx 构建 Tomcat 集群

http {
	# 配置上游服务器,通过 upstream 指令块
	upstream tomcats {
		server 192.168.1.173;
		server 192.168.1.174;
		server 192.168.1.175;
	}
	server {
		listen 80;
		server_name localhost;
		location / {
			# 传递
			proxy_pass http://tomcats;
		}
	} 
}

保存之后,重启nginx,访问 就会发现会以轮询的方式落到配置的3台服务器里面

课程收获:

通过今天的学习,学到了:

  1. 负载均衡分为 四层、七层和DNS负载均衡,四层负载均衡主要是转发请求,通过LVS实现,七层可以处理请求,通过Nginx实现。Ribbon也可以实现负载均衡。
  2. 复习了OSI网络模型,以及每层的作用,为后续学习做准备。
  3. 学会了使用 nginx 的反向代理 和 负载均衡,反向代理集群就实现了 负载均衡。常见的负载均衡策略有 轮询,ip_hash、指定 weight 等。
    今天的学习完毕!

0人推荐
随时随地看视频
慕课网APP