Tomcat简介与安装

目录

一、Tomcat 简介

1、Tomcat好帮手---JDK

2、安装Tomcat & JDK

1、系统环境说明

2 、安装JDK

3、安装Tomcat

二、Tomcat目录介绍

1、tomcat主目录介绍

2、webapps目录介绍

3、Tomcat配置介绍(conf)

4、Tomcat的管理

5、tomcat 配置管理页面(了解)

6、server.xml配置文件

7、Connector主要参数说明


一、Tomcat 简介

Tomcat是Apache软件基金会(Apache Software Foundation)项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。

解析java代码: JAVA容器,WEB容器,WEB中间件:

Tomcat,JBOSS、resin、weblogic等   ---解析动态页面
Weblogic  ---收费。

其他web容器如:

Python-------->uwsgi 
php----------->php

======================================================================

Tomcat和Nginx、Apache(httpd)、Web服务器一样,具有处理HTML页面的功能不过Tomcat处理静态HTML的能力不如Nginx/Apache服务器。

一个tomcat默认并发是200(官方),可以修改,但实际用的时候也就200并发左右。

https端口:443

使用方案

1567954650834

建议使用Nginx和Tomcat配合,Nginx处理静态,Tomcat处理动态程序 方案三中后端Tomcat可以运行在单独的主机,也可以是同一台主机上的多实例

Tomcat官网: http://tomcat.apache.org

1、Tomcat好帮手---JDK

JDK是 Java 语言的软件开发工具包,JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

JDK下载面页:

Java Archive Downloads - Java SE 8 | Oracle 台灣

2、安装Tomcat & JDK

安装时候选择tomcat软件版本要与程序开发使用的版本一致。jdk版本要进行与tomcat保持一致。

1、系统环境说明

rocky_linux9.4 

[root@localhost ~]# getenforce
Disabled
[root@localhost ~]# systemctl status firewalld
○ firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; preset: enabled)Active: inactive (dead)Docs: man:firewalld(1)
[root@localhost ~]# uname -a
Linux localhost.localdomain 5.14.0-427.13.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Wed May 1 19:11:28 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
2 、安装JDK

可以百度搜索oracle账号共享,然后登录oracle官网下载JDK,本文下载Linux64 tar.gz的包安装。

上传jdk1.8到服务器。安装jdk
[root@localhost ~]# tar xzf jdk-8u202-linux-x64.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/
[root@localhost local]# mv  jdk1.8.0_202 java设置环境变量:
[root@localhost local]# vim /etc/profile.d/jdk.sh
#!/bin/bash
export JAVA_HOME=/usr/local/java  # 指定java安装目录
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH  # 用于指定java系统查找命令的路径
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar  # 类的路径#检测JDK是否安装成功:
[root@localhost local]# source /etc/profile.d/jdk.sh
[root@localhost local]# java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
 
3、安装Tomcat
[root@localhost ~]# mkdir /data/application -p
[root@localhost ~]# cd /usr/src/[root@localhost src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.100/bin/apache-tomcat-8.5.100.tar.gz
[root@localhost src]# tar xzf apache-tomcat-8.5.100.tar.gz -C /data/application/[root@localhost src]# cd /data/application/
[root@localhost application]# mv apache-tomcat-8.5.100/ tomcat设置环境变量:
[root@localhost application]# vim /etc/profileexport TOMCAT_HOME=/data/application/tomcat   #指定tomcat的安装目录[root@localhost application]# source  /etc/profile查看tomcat是否安装成功:
[root@localhost etc]# /data/application/tomcat/bin/version.sh
Using CATALINA_BASE:   /data/application/tomcat
Using CATALINA_HOME:   /data/application/tomcat
Using CATALINA_TMPDIR: /data/application/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /data/application/tomcat/bin/bootstrap.jar:/data/application/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Server version: Apache Tomcat/8.5.100
Server built:   Mar 19 2024 13:54:42 UTC
Server number:  8.5.100.0
OS Name:        Linux
OS Version:     5.14.0-427.13.1.el9_4.x86_64
Architecture:   amd64
JVM Version:    1.8.0_202-b08
JVM Vendor:     Oracle Corporation

二、Tomcat目录介绍

1、tomcat主目录介绍
[root@localhost etc]# cd /data/application/tomcat/
[root@localhost tomcat]# yum install -y tree
[root@localhost tomcat]# tree -L 1.
├── bin     #存放tomcat的管理脚本
├── BUILDING.txt
├── conf    #tomcat的配置文件
├── CONTRIBUTING.md
├── lib     #web应用调用的jar包存放路径
├── LICENSE
├── logs    #tomcat日志存放目录,catalina.out日志为只要输出日志
├── NOTICE
├── README.md
├── RELEASE-NOTES
├── RUNNING.txt
├── temp    #存放临时文件
├── webapps #默认网站发布目录
└── work    #存放编译生产的.java与.class文件
​
7 directories, 7 files
2、webapps目录介绍
[root@localhost tomcat]# cd webapps/
[root@localhost webapps]# tree ./ -L 1 
./
├── docs  #tomcat的帮助文档
├── examples  #web应用实例
├── host-manager  #主机管理
├── manager    #管理
└── ROOT    #默认站点根目录
​
5 directories, 0 files
3、Tomcat配置介绍(conf)
[root@localhost webapps]# cd ../conf/
[root@localhost conf]# tree.
├── Catalina
├── catalina.policy
├── catalina.properties
├── context.xml # Tomcat 公用的环境配置,tomcat 服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器。
├── logging.properties
├── logs
├── server.xml           # tomcat 主配置文件 tomcat的设置,可以设置端口号,添加虚拟机这些的,是对服务器的设置
├── server.xml.bak
├── server.xml.bak2
├── tomcat-users.xml    # tomcat 管理用户配置文件 Tomcat Manager是Tomcat自带的、用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用。Tomcat是Java领域使用最广泛的服务器之一,因此Tomcat Manager也成为了使用非常普遍的功能应用。Tomcat Manager的用户配置是在Tomcat安装目录/conf/tomcat-users.xml文件中进行管理的
├── tomcat-users.xsd
└── web.xml # Web应用程序描述文件,都是关于是Web应用程序的配置文件。所有Web应用的 web.xml 文件的父文件。
​
2 directories, 10 files
4、Tomcat的管理
/data/application/tomcat/bin/startup.sh  #启动
/data/application/tomcat/bin/shutdown.sh #关闭

启动

[root@localhost bin]# cd /data/application/tomcat/bin
[root@localhost bin]# ./startup.sh 
Using CATALINA_BASE:   /data/application/tomcat
Using CATALINA_HOME:   /data/application/tomcat
Using CATALINA_TMPDIR: /data/application/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /data/application/tomcat/bin/bootstrap.jar:/data/application/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.

注意:tomcat未启动的情况下使用shutdown脚本,会有大量的输出信息。

检查tomcat是否启动正常

[root@localhost bin]# yum install -y net-tools
[root@localhost ~]# netstat -lntp | grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      2108/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      2108/java  

端口:

8005:这个端口负责监听关闭Tomcat的请求 shutdown: 向以上端口发送的关闭服务器的命令字符串。

8009: 与其他http服务通信接口。

8080: 建立http也就是客户端访问连接用。可以修改

启动完成浏览器进行访问

查看日志

[root@java-tomcat1 bin]# tail -f /data/application/tomcat/logs/catalina.out 
org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/data/application/tomcat/webapps/host-manager] has finished in [21] ms
04-Jul-2019 22:40:00.026 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/data/application/tomcat/webapps/manager]
04-Jul-2019 22:40:00.042 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/data/application/tomcat/webapps/manager] has finished in [16] ms
04-Jul-2019 22:40:00.048 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
04-Jul-2019 22:40:00.058 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
04-Jul-2019 22:40:00.062 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 479 ms

扩展:解决Tomcat启动慢的方法

Tomcat启动慢主要原因是生成随机数的时候卡住了,导致tomcat启动不了。
yum install rng-tools # 安装rngd服务(熵服务,增大熵池)
systemctl start rngd  # 启动服务
5、tomcat 配置管理页面(了解)

第一: 

[root@localhost ~]# vim /data/application/tomcat/webapps/docs/META-INF/context.xml

 

第二: 

[root@tomcat ~]# vim /data/application/tomcat/webapps/host-manager/META-INF/context.xml 

第三:

[root@tomcat ~]# vim /data/application/tomcat/webapps/manager/META-INF/context.xml 

 第四:

[root@localhost ~]#  vim /data/application/tomcat/conf/tomcat-users.xml <role rolename="manager-gui"/><role rolename="manager-script"/><role rolename="admin-gui"/><role rolename="admin-script"/><user username="admin" password="123456" roles="tomcat,manager-gui,manager-script,admin-gui,admin-script"/>

 重启使配置生效:

/data/application/tomcat/bin/shutdown.sh #关闭
/data/application/tomcat/bin/startup.sh  #启动

第五:

在此页面管理项目,有停止,启动,卸载上线项目等。 

[root@localhost ~]# vim /data/application/tomcat/webapps/manager/WEB-INF/web.xml

注: 仅支持war格式的java项目在此页面部署

6、server.xml配置文件
主配置文件 server.xml
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN"><!--port: 指定用于接受关闭命令的端口号shutdown: 指定关闭命令,可自定义,与启动脚本中的命令相对应--><Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /><!--Listener: 用于配置全局监听器,此处为使用APR库进行性能优化的监听器className: 监听器类的完全限定名SSLEngine: 指定是否启用SSL引擎--><Listener className="org.apache.catalina.core.JasperListener" /><!--Listener: JSP引擎的监听器,用于编译和加载JSP页面className: 监听器类的完全限定名--><GlobalNamingResources><!--全局命名资源的配置部分,这里包含了一个可编辑的用户数据库的资源配置--><Resource name="UserDatabase" auth="Container"type="org.apache.catalina.UserDatabase"description="User database that can be updated and saved"factory="org.apache.catalina.users.MemoryUserDatabaseFactory"pathname="conf/tomcat-users.xml" /><!--Resource: 定义了一个资源name: 资源的名称,这里为"UserDatabase"auth: 认证方式,Container表示使用容器的身份验证type: 资源的类型,这里为"org.apache.catalina.UserDatabase"description: 资源的描述信息factory: 创建资源的工厂类的完全限定名pathname: 用户数据库文件的路径,这里为"conf/tomcat-users.xml"--></GlobalNamingResources><Service name="Catalina"><!--Service: Tomcat服务的配置name: 服务名称--><Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" /><!--Connector: 配置用于接受HTTP请求的连接器port: 监听的端口号protocol: 使用的协议connectionTimeout: 连接超时时间redirectPort: 重定向端口,用于HTTPS连接--><!-- 其他连接器的配置 --><Engine name="Catalina" defaultHost="localhost"><!--Engine: Web容器引擎的配置name: 引擎名称defaultHost: 默认的主机名--><Realm className="org.apache.catalina.realm.LockOutRealm"><!--Realm: 安全领域的配置className: 安全领域实现类的完全限定名--><Realm className="org.apache.catalina.realm.UserDatabaseRealm"resourceName="UserDatabase"/><!--嵌套的Realm配置,这里使用UserDatabaseRealm作为默认的安全领域resourceName: 资源名称,对应于conf/tomcat-users.xml文件中的UserDatabase--></Realm><Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"><!--Host: 虚拟主机的配置name: 主机名appBase: Web应用程序的基础路径unpackWARs: 是否自动解压部署的WAR文件autoDeploy: 是否自动部署Web应用程序--><!-- 其他虚拟主机的配置 --><Valve className="org.apache.catalina.valves.AccessLogValve"directory="logs" prefix="localhost_access_log." suffix=".txt"pattern="%h %l %u %t &quot;%r&quot; %s %b" /><!--Valve: 用于记录访问日志className: 完全限定名directory: 日志存储的目录prefix: 日志文件名的前缀suffix: 日志文件名的后缀pattern: 日志格式--></Host><!-- 其他虚拟主机的配置 --></Engine></Service>
</Server>

7、Connector主要参数说明
port:指定服务器端要创建的端口号,并在这个端口监听来自客户端的请求。
protocol:连接器使用的协议,支持HTTP和AJP。AJP(Apache Jserv Protocol)专用于tomcat与apache建立通信的.
redirectPort:指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
maxThreads:接收最大请求的并发数
connectionTimeout  指定超时的时间数(以毫秒为单位)

host:表示一个虚拟主机
name:指定主机名
appBase:应用程序基本目录,即存放应用程序的目录.一般为appBase="webapps",相对于CATALINA_HOME而言的,也可以写绝对路径。
unpackWARs:如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文件中运行应用程序
autoDeploy:在tomcat启动时,是否自动部署

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/859655.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

24.6.16

星期一&#xff1a; 补cf global round26 C2 cf传送门 思路&#xff1a;有效操作2只有一次&#xff0c;且反转后不会再出现负数&#xff0c;即后面能贡献 2^n-i个方案&#xff0c;再乘上前面 2^(k>0的次数) 代码如下&…

GWB—200JA型引伸计标定器

GWB一200JA型引伸计标定器&#xff0c;是一种纯机械式的高精度位移测微仪器。依据JJG762—2007引伸计检定规程要求&#xff0c;专门用于对各类引伸计的标定&#xff0c;也广泛用于位移传感器的检定及相应百分表、千分表的标定。 l、本仪器由精密微分测头及测量支架组成。该标定…

vue2+webpack 和 vite+vue3 配置获取环境变量(补充)

相关涉及知识点可看小编该文章&#xff1a; nginx: 部署前端项目的详细步骤&#xff08;vue项目build打包nginx部署&#xff09;_前端工程打包部署到nginx-CSDN博客 1.vue2webpack 我们通常会在项目中看到这么两个文件(没有则自己创建&#xff0c;文件名&#xff1a;.env.***) …

C#回车按下时 如果当前焦点的下个控件为Button 则按Button。 如果不是Button则焦点移到下个控件上

需求 扫SN 扫IMEI 扫其它 就自动点打印 帮我写这个C# 函数 “ private void FormF360ColorBox_KeyDown(object sender, KeyEventArgs e)” 回车按下时 如果当前焦点的下个控件为Button 则按Button。 如果不是Button则焦点移到下个控件上。 控件的Index 顺序要设对哦。 你可以…

AI大模型战争:通用与垂直,谁将领跑未来?

文章目录 &#x1f4d1;引言一、通用大模型&#xff1a;广泛适用&#xff0c;实力不容小觑1.1 强大的泛化能力1.2 广泛的适用场景 二、垂直大模型&#xff1a;专注深度&#xff0c;精准解决问题2.1 深度专注&#xff0c;精准度高2.2 快速落地与普及 三、通用与垂直&#xff1a;…

通过焦点行事件对行值抓取改变当行状态值

我们在实际开发过程中&#xff0c;对于每一行的状态值需要有单独的变换&#xff0c;通过对特定值的判断我们可以改变其状态值&#xff0c;通过状态值的不同&#xff0c;允许用户进行不同的操作&#xff0c;本文状态值以审核为例&#xff0c;通过对AuditState列的判断&#xff0…

新建的springboot项目启动报错:找不到或无法加载主类

检查编译问题 在使用Spring Boot时&#xff0c;我们通常使用Maven或Gradle进行项目的构建和编译。如果在编译过程中出现了错误&#xff0c;可能会导致无法加载主类的问题。 在使用Maven时&#xff0c;可以尝试使用 mvn clean install 命令清理并重新构建项目。 如果使用Grad…

qt开发-12_QScrollArea

在 Qt 中&#xff0c;QScrollArea 是用于显示可以滚动内容的控件&#xff0c;通常用于处理视图中内容超出可见区域的情况。它提供了一种在有限的视窗内显示大量内容的解决方案&#xff0c;如显示大图像、长文本、多个小部件等。 常用方法和属性 setWidget(QWidget *widget)&am…

泰勒斯威夫特2022年纽约大学毕业典礼演讲:NYU‘s 2022 Commencement Speaker Taylor Swift

NYU’s 2022 Commencement Speaker Taylor Swift Link: https://www.youtube.com/watch?vOBG50aoUwlI Singer, songwriter, producer, and director Taylor Swift received a Doctor of Fine Arts, honoris causa, at the Commencement for the Class of 2022 and delivered …

RecyclerVIew->加速再减速的RecyclerVIew平滑对齐工具类SnapHelper

XML文件 ItemView的XML文件R.layout.shape_item_view <?xml version"1.0" encoding"utf-8"?> <FrameLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"100dp"android:layout_heig…

一加12搞机(kernelsu+lsposed)

刷机 温馨提示&#xff1a;如果你不知道root的意义在哪&#xff0c;建议不要解锁和root&#xff0c;到时候救砖或者回锁都挺麻烦。 刷全量包 最新版的系统没有更新推送&#xff0c;所以去一加社区[0]找了个全量包来刷&#xff0c;。安装方式可以看帖子里的内容&#xff0c;说…

力扣-滑动窗口

文章目录 滑动窗口题目1-无重复字符的最长子串题目2-找到字符串中所有字母异位词 滑动窗口 滑动窗口是一种常用的算法技巧&#xff0c;适用于需要在一个数组或字符串中找出满足特定条件的连续子数组或子字符串的问题。它通过维护一个窗口范围来减少重复计算&#xff0c;从而优…

零基础STM32单片机编程入门(一)初识STM32单片机

文章目录 一.概要二.单片机型号命名规则三.STM32F103系统架构四.STM32F103C8T6单片机启动流程五.STM32F103C8T6单片机主要外设资源六.编程过程中芯片数据手册的作用1.单片机外设资源情况2.STM32单片机内部框图3.STM32单片机管脚图4.STM32单片机每个管脚可配功能5.单片机功耗数据…

金融行业专题|某头部期货基于 K8s 原生存储构建自服务数据库云平台

为了进一步提升资源交付效率&#xff0c;不少用户都将数据库应用从物理环境迁移到容器环境。而对于 Kubernetes 部署环境&#xff0c;用户不仅需要考虑数据库在性能方面的需求&#xff0c;还要为数据存储提供更安全、可靠的高可用保障。 近期&#xff0c;某头部期货机构基于 S…

PaddleOCR C++源码编译以及demo测试

Windows10下使用PaddleOCRc 1.所需要的环境 PaddleOCR 源码文件&#xff1a;https://gitee.com/paddlepaddle/PaddleOCR &#xff08;本文选择2.6https://github.com/PaddlePaddle/PaddleOCR/archive/refs/tags/v2.6.0.zip&#xff09; opencv库&#xff1a;https://opencv…

PyTorch的环境配置和安装

PyTorch环境配置及安装 初步机器学习&#xff0c;这里记录下一些学习经过&#xff0c;之后以便于自己查看&#xff0c;同时欢迎各位大佬点评&#xff0c;本节是机器计算的一个包的安装和简单验证。 安装、使用环境 Windows环境下&#xff1a;CUDA官网使用IDM下载就很快乐&am…

LeetCode11. 盛最多水的容器题解

LeetCode11. 盛最多水的容器题解 题目链接&#xff1a; https://leetcode.cn/problems/container-with-most-water 示例 思路 暴力解法 定住一个柱子不动&#xff0c;然后用其他柱子与其围住面积&#xff0c;取最大值。 代码如下&#xff1a; public int maxArea1(int[]…

AI儿童绘本创作

之前分享过AI儿童绘画的项目&#xff0c;但是主要问题是角色一致要花费很长的时间&#xff01; 今天发现了这款&#xff0c;非常奈斯&#xff01; 只需输入故事主题、风格、模板&#xff0c;软件就会自动创作故事内容&#xff0c;自动生成插画配图&#xff0c;自动根据模板生…

Spring Bean自动装配:深入解析与实战应用

何为自动装配 在使用Spring框架配置bean时&#xff0c;我们通常需要为bean的属性设置值。如果不手动设置这些值&#xff0c;它们通常会被初始化为默认值&#xff08;对于对象类型通常是null&#xff0c;对于基本类型如int则是0&#xff0c;boolean是false等&#xff09;。自动…

(超详细)YOLOV7改进-Soft-NMS(支持多种IoU变种选择)

1.在until/general.py文件最后加上下面代码 2.在general.py里面找到这代码&#xff0c;修改这两个地方 3.之后直接运行即可