文章目录
Tomcat简介
- 最初是由 Sun 的软件构架师詹姆斯·邓肯·戴维森开发
- 安装 Tomcat 后,安装路径下面的目录和文件,是使用或者配置 Tomcat 的重要文件。
Tomcat 重要目录
名称 | 说明 |
---|---|
bin | 存放启动和关闭 Tomcat 脚本 |
conf | 存放 Tomcat 不同的配置文件 |
doc | 存放 Tomcat 文档 |
lib | 存放 Tomcat 运行需要的库文件 |
logs | 存放 Tomcat 执行时的 LOG 文件 |
src | 存放 Tomcat 的源代码 |
webapps | Tomcat 的主要 Web 发布目录 |
work | 存放 jsp 编译后产生的 class 文件 |
Nginx 应用
Nginx 是一款非常优秀的 HTTP 服务器软件
- 支持高达 50000 个并发连接数的响应
- 拥有强大的静态资源处理能力
- 运行稳定
- 内存、CPU 等系统资源消耗非常低
目前很多大型网站都应用 Nginx 服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发能力。
Nginx 负载均衡实现原理
-
Nginx 实现负载均衡是通过反向代理实现
-
反向代理原理
反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。 一句话:通过代理服务器代理到后端服务器。
Nginx 配置反向代理的主要参数
- uostream 服务池名{ }
- 配置后端服务器池,以提供响应数据
- proxy_pass http://服务池名
- 配置将访问请求转发给后端服务器池的服务器处理
stream在四层,不通过URL(四层是传输层)
URL在七层(应用层)
Nginx 动静分离实现原理
动静分离原理
- 服务端接受来自客户端的请求中,既有静态资源也有动态资源,静态资源由 Nginx 提供服务,动态资源 Nginx 转发至后端
Nginx 静态处理优势
- Nginx 处理静态页面的效率远高于 Tomcat 的出来能力
- 若 Tomcat 的请求量为 1000 次,则 Nginx 的请求量为 6000 次
- Tomcat 每秒的吞吐量为 0.6 M,Nginx 的每秒吞吐量为 3.6 M
- Nginx 处理静态资源的能力是 Tomcat 处理的 6 倍
Nginx 负载均衡模式
-
rr 负载均衡模式
每个请求按时间顺序逐一分配到不同的后端服务器,如果超过了最大失败次数后(max_fails,默认1),在失效时间内(fail_timeout,默认 10 秒),该节点失效权重变为 0 ,超过失效时间后,则恢复正常,或者全部节点都是 down 后,那么将所有节点都恢复为有效继续探测,一般来说 rr 可以根据权重来进行均匀分配。 -
least_conn 最少连接
优先将客户端请求调度到当前连接最少的服务器。 -
ip_hash 负载均衡模式
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定一个后端服务器,可以解决 session 的问题,但是 ip_hash 会造成负载不均,有的服务请求接受多,有的服务请求接受少,所以不建议采用 ip_hash 模式,session 共享问题可用后端服务的 session 共享代替 nginx 的 ip_hash。 -
fair(第三方)负载均衡模式
按后端服务器的响应时间来分配请求,响应时间短的优先分配。 -
url-hash(第三方)负载均衡模式
基于用户请求的 uri 做 hash 和 ip_hash 算法类似,是对每个请求按 url 的 hash 结果分配,使每个 URL 定向到同一个后端服务器,但是也会造成分配不均的问题,这种模式后端服务器为缓存时比较好。