Tomcat(服务布署,虚拟主机配置,优化,多实例布署)
介绍
是一种由软件基金会开发的、用Java语言编撰的免费、开放源代码的Web应用服务器。它是项目的核心组件之一,由、Sun以及其他公司和个人共同开发。一般被用于中大型系统和并发访问用户不是好多的场合,由于它是一种轻量级应用服务器,非常适用于开发和调试JSP(PaGes)程序。
核心组件
web容器
是一个服务器端的软件环境,用于运行Web应用程序,处理HTTP恳求和响应。Web容器是web服务器的一部份,负责管理和执行Web应用程序中的服务器端组件,如和JSP(Pages)。
JSP容器
是用于托管和执行Pages(JSP)的运行时环境。与容器类似,JSP容器一般是Web服务器或应用服务器的一部份。它提供了必要的支持,便于在服务器上运行JSP页面,
容器
容器是一种用于托管和执行Java的环境,一般是Web服务器或应用服务器的一部份。容器提供了必要的基础设施,便于在服务器上运行,
因而是web应用服务器,也是一个/JSP容器。作为容器,负责处理顾客恳求,把恳求传送给,并将的响应传送回给顾客。
(服务器端Java程序):
定义:是一种Java编撰的服务器端程序,它扩充了服务器的功能,并才能动态生成Web页面。运行在服务器上,接收来自顾客端的恳求并形成相应的响应。
特征:
使用场景:
JSP(Pages):
定义:JSP是一种基于Java的技术,容许在HTML页面中嵌入Java代码。它简化了动态Web页面的创建,促使开发者可以在页面中嵌套Java代码,而无需在中编撰大量的Java代码。
特征:
使用场景:
功能组件结构
的核心功能有两个,分别是负责接收和反馈外部恳求的联接器,和负责处理恳求的容器其中联接器和容器相辅相成,一起构成了基本的web服务。每位服务器可以管理多个。
恳求过程
恳求发送:当顾客端(一般是Web浏览器)发送一个HTTP恳求时,恳求首先抵达服务器的网路端口。默认情况下,窃听的端口是8080。
:恳求被服务器上的接收。是用于处理HTTP恳求的组件之一。它负责窃听指定的端口,并将接收到的恳求传递给后续的处理组件。
交给和处理:将恳求交给与其关联的和来处理。一个服务器可以包含多个,每位可以包含多个。是用于处理恳求的核心组件。
匹配虚拟主机(Host):首先尝试匹配恳求的主机名(Host)与其所拥有的虚拟主机(Host)配置。虚拟主机准许在同一实例上托管多个域名或应用程序。
匹配上下文():虚拟主机匹配后,恳请被传递给匹配的上下文()。上下文是Web应用程序的上下文路径,一般对应于布署的应用程序。
处理:上下文确定后,恳请被传递给相应的来处理。是Java程序,用于处理Web恳求和生成Web响应。可以通过Java编撰,比如在Java中实现的业务逻辑。
生成响应:执行相应的业务逻辑,并生成用于建立HTTP响应的内容。这可以包括动态生成的HTML、JSON、XML等。
响应返回:生成的响应被返回给的。
发送到顾客端:最后,将生成的HTTP响应发送回顾客端,完成整个恳求-响应周期。
这是一个简化的描述,实际上的恳求处理涉及到更多的细节和组件。这个过程的关键点是,通过、、、虚拟主机和上下文等组件来有效地处理和路由HTTP恳求,最终通过来世成动态内容并返回给顾客端。
怎样执行应用(java代码)
可以做为JAVA代码环境,只要把JAVA代码环境(.class可执行类的文件或则war包或则jar包,置于中,这么在启动时,就可以解压、并运行/中的那些应用(只须要更改配置文件)
主要目录说明
-user.xml:Realm认证时用到的相关角色、用户和密码等信息,自带的默认情况下会用到此文件,在中添加/册删掉用户,为用户指|定角色等将通过编辑此文件实现;
服务布署示例
关掉防火墙,将安装所需软件包传到/opt目录下
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
安装JDK
cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm
rpm -ivh jdk-8u201-linux-x64.rpm
java -version
rpm -qpl jdk-8u201-linux-x64.rpm
rpm 是 RPM 包管理器的命令行工具。
-q 表示查询模式,用于查询已安装的包。
-p 表示查询的是尚未安装的包文件。
l 表示列出包中的文件列表。
jdk-8u201-linux-x64.rpm 是要查询的 RPM 包的文件名。
作用:
该命令用于查看尚未安装的 RPM 包中包含的文件列表。
rpm -ivh jdk-8u201-linux-x64.rpm
rpm 是 RPM 包管理器的命令行工具。
-i 表示安装模式,用于安装新的 RPM 包。
-v 表示详细模式,用于显示安装的详细信息。
-h 表示显示进度条。
作用:
该命令用于安装指定的 RPM 包。
vim /etc/profile.d/java.sh
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/bin:$PATH
运行脚本刷新配置
=/usr/java/jdk1.8.0_201-amd64
=.:$/lib/tools.jar:$/lib/dt.jar
PATH=$/bin:$PATH
总的来说,这段脚本主要是为了:
:编译、运行Java程序时,JRE会去该变量指定的路径中搜索所需的类(.class)文件。dt.jar:是关于运行环境的解释器,主要是可视化的swing的包。
tools.jar:主要是一些jdk工具的泛型,包括javac、java、javap(jdk自带的一个反编译工具)、等。
JDK:javakit(java开发工具)
JRE:java(java运行时环境)
jvm:java(java虚拟机),使java程序可以在多种平台上运行class文件。
安装
安装
cd /opt
tar zxvf apache-tomcat-9.0.16.tar.gz
mv apache-tomcat-9.0.16 /usr/local/tomcat
tarzxvf--9.0.16.tar.gz
启动
#后台启动
/usr/local/tomcat/bin/catalina.sh start
#前台启动
/usr/local/tomcat/bin/catalina.sh run
检测
-natp|grep8080
这个命令用于在系统上查找与端标语8080相关联的网路联接信息。以下是各个部份的解释:
第一次启动可能会发觉启动很慢,可以更改jdk参数更改。
vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security
#修改117行为securerandom.source=file:/dev/urandom
解释这个设置的涵义:
/dev/是/dev/的非阻塞版本,/dev/的pool依赖于系统中断,因而在系统的中断数不足时,/dev/设备会始终封锁,尝试读取的进程都会步入等待状态,直至系统的中断数充分够用,/dev/设备可以保证数据的随机性。
/dev/不依赖系统的中断,也就不会导致进程忙等待,并且数据的随机性也不高,所以该随机数的安全性理论上不高。倘若应用对安全性要求很高,这么应当使用/dev/。
重启服务
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
#这两个脚本位于 Tomcat 安装目录的 bin 子目录下。使用这两个脚本的一般步骤如下:
#运行 shutdown.sh 脚本以关闭现有的 Tomcat 服务器实例。
#运行 startup.sh 脚本以启动 Tomcat 服务器。
在中配置虚拟主机(Host)准许在同一台服务器上托管多个域名或主机名的不同网站。
好多时侯公司会有多个项目须要运行,通常不会是在一台服务器上运行多个服务,这样会消耗太多的系统资源。此时,就须要使用到虚拟主机。
比如现今新增两个域名过这两个域名访问到不同的项目内容。和
以下是配置虚拟主机的基本步骤:
创建test1和test2项目目录和文件
mkdir /usr/local/tomcat/webapps/test1
mkdir /usr/local/tomcat/webapps/test2
echo "This is test1 page\!" > /usr/local/tomcat/webapps/test1/index.jsp
echo "This is test2 page\!" > /usr/local/tomcat/webapps/test2/index.jsp
更改主配置文件.xml:
cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm
rpm -ivh jdk-8u201-linux-x64.rpm
java -version
0
这是对虚拟主机的配置。重要的属性和元素包括:
重启:
cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm
rpm -ivh jdk-8u201-linux-x64.rpm
java -version
1
顾客端浏览器访问验证
浏览器访问:8080/页面显示Thisistest1page!浏览器访问:8080/页面显示Thisistest2page!
优化
默认安装下的缺省配置并不适宜生产环境,它可能会频繁出现假死现象须要重启,只有通过不断压测优化能够让它最高效率稳定的运行。优化主要包括三方面,分别为操作系统优化(内核参数优化),配置文件参数优化,Java虚拟机(JVM)调优。
配置文件参数优化
以上是一些常用的配置参数,还有很多其它的参数设置,还可以继续深入的优化,HTTP与AJP的参数属性值,可以参考官方文档的详尽说明进行学习使用。
cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm
rpm -ivh jdk-8u201-linux-x64.rpm
java -version
2
这是的元素的配置,用于定义接受顾客端恳求的联接器。以下是各个属性的解析:
port:
:
:
:
和:
:
:
:
:
:
其他属性:
多实例布署
前期打算
安装jdk,
cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm
rpm -ivh jdk-8u201-linux-x64.rpm
java -version
3
配置环境变量
cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm
rpm -ivh jdk-8u201-linux-x64.rpm
java -version
4
对于:
更改中的.xml文件,要求各实例配置不能有重复的端标语
cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm
rpm -ivh jdk-8u201-linux-x64.rpm
java -version
5
更改各实例中的.sh和.sh文件,添加环境变量
cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm
rpm -ivh jdk-8u201-linux-x64.rpm
java -version
6
cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm
rpm -ivh jdk-8u201-linux-x64.rpm
java -version
7
cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm
rpm -ivh jdk-8u201-linux-x64.rpm
java -version
8
cd /opt
rpm -qpl jdk-8u201-linux-x64.rpm
rpm -ivh jdk-8u201-linux-x64.rpm
java -version
9
启动各中的/bin/.sh
rpm -qpl jdk-8u201-linux-x64.rpm
rpm 是 RPM 包管理器的命令行工具。
-q 表示查询模式,用于查询已安装的包。
-p 表示查询的是尚未安装的包文件。
l 表示列出包中的文件列表。
jdk-8u201-linux-x64.rpm 是要查询的 RPM 包的文件名。
作用:
该命令用于查看尚未安装的 RPM 包中包含的文件列表。
0
浏览器访问测试
的多实例和虚拟主机是两种不同的配置方法,用于满足不同的需求和场景。以下是它们的主要区别:
多实例配置:
虚拟主机配置:
总体来说,多实例适用于须要在同一服务器上运行多个完全独立的实例的情况,而虚拟主机适用于在同一实例中为多个域名提供服务的情况。