Nginx+Tomcat实现动静分离和负载均衡案例实现详细过程

一,什么是tomcat?

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

1,Tomcat核心组件

在这里插入图片描述

2,tomcat处理请求的过程

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O6shtzBG-1605103536114)(en-resource://database/1225:1)]

3,tomcat重要目录

  • bin :存放启动和关闭tomcat脚本
  • conf: 存放tomcat不同的配置文件
  • doc:存放tomcat文档
  • lib:存放tomcat运行需要的库文件
  • logs:存放tomcat执行时的log文件
  • src:存放tomcat的源代码
  • webapps:tomcat的主要web发布目录
  • work :存放jsp编译后产生的class文件

二,如何理解nginx?

Nginx是一个很强大的高性能web和反向代理服务器,在连接高并发的情况下,nginx是apache服务器不错的替代品,Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一,能够支持高达50.000个并发连接数的响应。

  • Nginx是一款非常优秀的HTTP服务器软件

  • 支持高达50000个并发连接数的响应

  • 拥有强大的静态资源处理能力

  • 运行稳定

  • 内存、CPU等系统资源消耗非常低

  • 目前很多大型网站都应用Nginx服务器作为后端网站程序的反向 代理及负载均衡器,提升整个站点的负载并发能力

  • nginx实现负载均衡是通过反向代理实现

  • 反向代理原理
    在这里插入图片描述

  • nginx配置反向代理的主要参数

    • upstream 服务池名{}
      • 配置后端服务器池,以提供相应数据
    • proxy_pass http://服务池名
      • 配置将访问请求转发给后端服务器池的服务器处理

三,为什么使用nginx?

在传统的web项目中,并发量小,用户使用的少,所以在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat服务器返回消息给用户,理解如下图:在这里插入图片描述

当然我们知道,为了解决高并发,可以使用负载均衡,也就是我们多增加几个tomcat服务器,当用户访问的时候,请求可以提交到空闲的tomcat服务器上
在这里插入图片描述

总结就是:

反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

四,动静分离实现原理

  • 服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由nginx提供服务,动态资源nginx转发至后端
    在这里插入图片描述

  • nginx静态处理优势:

    • nginx处理静态页面的效率远高于Tomcat的处理能力
    • 若Tomcat的请求量为1000次,则nginx的请求量为6000次
    • Tomct每秒的吞吐量为0.6M,nginx的每秒吞吐量为3.6M
    • nginx处理静态资源的能力是Tomcat处理的6倍

五,NGINX,Tomcat负载均衡,动静分离案例

1,案例架构:

本架构同时实现了nginx的负载均衡和动态分离,静态页面由nginx处理,动态页面由nginx进行调度,分配给后端的两台Tomcat网站服务器,权重值为1:1

Nginx负载均衡器20.0.0.10nginx
Tomcat网站服务node120.0.0.20jdk,apache-tomcat
Tomcat网站服务node220.0.0.30jdk,apache-tomcat

2,NGINX部署

1,安装jdk环境
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# tar zxf jdk-8u91-linux-x64.tar.gz -C /usr/local/
[root@localhost ~]# vim /etc/profile
最后加入如下内容
export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=$JAVA_HOME/bin:$PATH
[root@localhost ~]# source /etc/profile
2,安装tomcat软件,创建软连接
tar zxf apache-tomcat-8.5.16.tar.gz -C /usr/local/
cd /usr/local/
mv apache-tomcat-8.5.16/ tomcat

ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
3,创建web目录,分别为两个节点创建两个不同内容
[root@localhost local]# mkdir -pv /web/webapp1
mkdir: 已创建目录 "/web"
mkdir: 已创建目录 "/web/webapp1"
[root@localhost local]# vim /web/webapp1/index.jsp
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/ html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>动态页面</title>
</head>
<body>
<h1>动态页面01</h1>
<p>这是个动态页面01</p>          ##此处节点2编辑为<p>这是个动态页面02</p>,其余相同
</body>
</html>

在这里插入图片描述

3,tomcat服务器节点部署(两台)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值