Tomcat及其负载均衡!

Posted handsomeboy-东

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat及其负载均衡!相关的知识,希望对你有一定的参考价值。

Tomcat概述

Tomcat简介

  • Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核心项目
  • 它是免费的、开放源代码的Web应用服务器,深受Java爱好者的喜爱,并得到部分软件开发商的认可
  • 目前比较流行的Web应用服务器
  • Tomcat通常作为一个Servlet和JSP容器,单独运行在后端

Tomcat核心组件

  • Web服务器:提供Web页面功能
  • servlet容器:处理后端业务,内有catalina脚本来帮助处理Servlet代码
  • JSP容器:提供前端业务,将JSP动态网页(index.jsp)翻译成Servlet代码

Tomcat部署

Tomcat主要目录

  • bin:主要存放一些脚本文件,常用的 有catalina.sh、startup.sh、shutdown.sh
  • conf:存放Tomcat配置文件,其中server.xml为主配置文件
  • lib:存放Tomcat服务器的jar包
  • logs:存放Tomcat日志文件
  • temp:存放Tomcat运行时产生的文件
  • webapps:存放项目资源的目录
  • work:Tomcat工作目录,一般在清除Tomcat缓存时使用
[root@server opt]# rpm -ivh jdk-8u201-linux-x64.rpm 		#安装JDK,JDK为Tomcat运行必要的工具
[root@server opt]# vim /etc/profile.d/java.sh				#设置JDK的环境变量
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bim:$PATH
[root@server opt]# source /etc/profile.d/java.sh
[root@server opt]# tar zxf apache-tomcat-9.0.16.tar.gz 
[root@server opt]# mv apache-tomcat-9.0.16 /usr/local/tomcat
[root@server tomcat]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
[root@server tomcat]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
[root@server tomcat]# startup.sh			#开启Tomcat
[root@server tomcat]# netstat -antp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      8808/java  

在这里插入图片描述

优化Tomcat启动速度

修改JDK参数进行优化,以免第一次启动tomcat后每次启动tomcat速度会很慢

[root@server ~]# vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security 

在这里插入图片描述

虚拟主机配置

  • 当一台服务器上运行多个Tomcat时,可以使用Tomcat虚拟主机,如新增两个域名www.whd.com和www.test.com,通过访问两个域名可以访问倒不同的项目内容
[root@server ~]# mkdir /usr/local/tomcat/webapps/whd
[root@server ~]# mkdir /usr/local/tomcat/webapps/test
[root@server ~]# echo "this is whd\\!" > /usr/local/tomcat/webapps/whd/index.jsp
[root@server ~]# echo "this is test\\!" > /usr/local/tomcat/webapps/test/index.jsp
[root@server ~]# echo "192.168.118.50 www.whd.com www.test.com " >> /etc/hosts
#将ip与域名添加本地映射关系
[root@server ~]# vim /usr/local/tomcat/conf/server.xml 		#修改配置文件

在这里插入图片描述

注释:

  • Host name:主机名
  • appBase:Tomcat程序工作目录,路径为/usr/local/tomcat/webapps
  • unpackWARs:Tomcat在webapps文件夹中发现war文件时,是否将其解压
  • autoDeploy:设置为true,则web.XML发生变化时,Tomcat自动重新部署程序,实现这个功能必须允许后台处理
  • xmlValidation:是否开启对XML文件的验证
  • xmlNamespaceAware:是否启用xml命名空间,设置该值与xmlValidation为true,表示对web.xml文件执行有效性检验
  • docBace:WEB应用的目录(本地路径)
  • path:设置访问的URI为WEB应用的根目录(URL路径),“”表示默认,加载系统中自带的类(class文件)
  • reloadable:是否在陈旭有改动时重新载入

重启Tomcat

[root@server ~]# shutdown.sh	
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@server ~]# startup.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

在本地访问网页
在这里插入图片描述
在这里插入图片描述

Tomcat优化的主要参数

  • maxTHreads:表示Tomcat可创建的最大的线程数,默认为200
  • minSpareThreads:Tomcat最小空闲线程数,表示即使没有人使用也开这么多空线程等待,默认是10
  • maxSpareThreads:最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程,默认值是-1(表示无限制,一般不用指定)
  • URIEncoding:指定Tomcat容器的URL编码格式
  • connnectionTimeout:网络连接超时,以毫秒为单位,默认20000
  • enableLookups:是否反查域名
  • disableUploadTimeout:上传时是否使用超时机制,应设置为true
  • connectionUploadTimeout:上传超时时间
  • addeptCount:指定当所有可以使用的处理请求的线程数都被使用时,可传入连接请求的最大队列长度,超过这个数的请求将不予处理,默认为100个
  • compression:是否对响应的数据进行gzip压缩,压缩可以有效减少页面的大小,节省带宽
  • compressionMinSize:表示压缩响应的最小值,只有当响应报文大小大于这个值的时候才会对报文进行压缩,如果开启压缩默认为2048
  • compressabldMimeType:指定对哪些类型的文件进行数据压缩
  • noCompressionUserAgents=“gozilla,traviata” :对于一下的浏览器,不启动压缩
[root@server ~]# vim /usr/local/tomcat/conf/server.xml 		#修改配置文件,添加优化

在这里插入图片描述

nginx+Tomcat负载均衡群集

设备准备,两台Tomcat和一台Nginx
server1:192.168.118.50

[root@server1 ~]# netstat -antp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      40194/java 
[root@server1 ~]# mkdir /usr/local/tomcat/webapps/whd			#创建一个项目whd
[root@server1 ~]# vim /usr/local/tomcat/webapps/whd/index.jsp 	#配置动态页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP whd1 page</title>
</head>
<body>
<% out.println("动态页面 1,http://www.whd1.com");%>
</body>
</html>
[root@server1 ~]# vim /usr/local/tomcat/conf/server.xml		#添加虚拟主机配置

在这里插入图片描述

[root@server1 ~]# shutdown.sh
[root@server1 ~]# startup.sh
[root@server1 ~]# curl 192.168.118.50:8080/index.jsp			#测试配置是否成功

<html>
<head>
<title>JSP whd1 page</title>
</head>
<body>
动态页面 1,http://www.whd1.com

</body>
</html>

server2:192.168.118.100

[root@server2 opt]# netstat -antp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      78633/java   
[root@server1 ~]# mkdir /usr/local/tomcat/webapps/whd			#创建一个项目whd
[root@server1 ~]# vim /usr/local/tomcat/webapps/whd/index.jsp 	#配置动态页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP whd2 page</title>			#注意这里改为whd2
</head>
<body>
<% out.println("动态页面 1,http://www.whd2.com");%>
</body>
</html>
[root@server1 ~]# vim /usr/local/tomcat/conf/server.xml		#添加虚拟主机配置

在这里插入图片描述

[root@server2 conf]# shutdown.sh
[root@server2 conf]# startup.sh
[root@server2 conf]# curl 192.168.118.100:8080/index.jsp

<html>
<head>
<title>JSP whd2 page</title>
</head>
<body>
动态页面 1,http://www.whd2.com

</body>
</html>

nginx:192.168.118.200

[root@nginx nginx-1.15.9]# netstat -antp | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      26510/nginx: master 
[root@nginx ~]# echo "<html><body><h1>this is static</h1></body></html>" > /usr/local/nginx/html/index.html 
#### 设置静态页面
[root@nginx ~]# vim /usr/local/nginx/conf/nginx.conf		#修改配置文件

在这里插入图片描述
在win10上访问nginx服务器IP地址测试
在这里插入图片描述
再访问index.jsp,不断刷新,会发现会在动态页面whd1和whd2之间不断刷新
在这里插入图片描述
在这里插入图片描述

总结

  • Tomcat服务器是一个免费开源的Web应用服务器,是轻量级服务器,常被用来开发和调试JSP程序
  • 安装Tomcat前必须安装好JDK,server.xml为Tomcat的主要配置文件
  • 可以将两个或多个Tomcat server放到Nginx的upstream中组成一个负载均衡集群,并设置weight值来分别对Tomcat server进行权重的设置

以上是关于Tomcat及其负载均衡!的主要内容,如果未能解决你的问题,请参考以下文章

部署Tomcat及其负载均衡

部署Tomcat及其负载均衡

部署Tomcat及其负载均衡

部署Tomcat及其负载均衡笔记

部署Tomcat及其负载均衡笔记

部署Tomcat及其负载均衡笔记