企业级WEB应用服务器TOMCAT详解

2024-08-26 00:20

本文主要是介绍企业级WEB应用服务器TOMCAT详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、什么是TOMCAT

1.1来源

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。

1.2定义

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

对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当公司运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。Tomcat最新版本为10.0.23。

二、为什么要有TOMCAT

一、支持 Java Web 应用

  1. 运行环境提供

    • Java 语言具有跨平台的特性,但要让基于 Java 的 Web 应用能够在服务器上运行,需要一个合适的容器。Tomcat 为 Java Servlet 和 JavaServer Pages(JSP)提供了运行环境。
    • 它实现了 Servlet 和 JSP 规范,使得开发人员可以使用 Java 语言来构建动态的 Web 内容。
  2. 与 Java 生态系统的集成

    • 与其他 Java 技术和框架无缝集成。例如,可以与 Spring、Struts 等流行的 Java 开发框架配合使用,方便开发人员构建复杂的企业级应用。
    • 利用 Java 的强大功能和丰富的类库,提供高效、可靠的 Web 服务。

二、功能特性

  1. 轻量级与高效性

    • Tomcat 是一款轻量级的服务器,占用系统资源相对较少,启动速度快。这使得它非常适合在资源有限的环境中部署,如开发环境、小型服务器等。
    • 同时,它在处理大量并发请求时也能保持较高的性能,能够满足大多数中小型 Web 应用的需求。
  2. 易于部署和管理

    • 部署 Web 应用非常简单,只需将应用程序的 WAR(Web Archive)文件复制到 Tomcat 的部署目录中,Tomcat 会自动解压并部署应用。
    • 提供了一系列的管理工具和界面,可以方便地监控服务器的运行状态、管理应用的部署和配置等。
  3. 安全性

    • 提供了一定程度的安全保障,如支持 HTTPS 协议,可以对数据进行加密传输,保护用户的隐私和数据安全。
    • 可以通过配置访问控制列表等方式来限制对应用的访问,增强系统的安全性。

三、开源与社区支持

  1. 开源免费

    • Tomcat 是开源软件,这意味着任何人都可以免费使用、修改和分发它。这降低了开发和部署 Web 应用的成本。
    • 开源的特性也吸引了大量的开发者参与到 Tomcat 的开发和改进中,使得它不断发展和完善。
  2. 强大的社区支持

    • 拥有庞大的用户社区和活跃的开发者社区。在遇到问题时,可以通过社区论坛、邮件列表等渠道获得帮助和支持。
    • 社区还提供了丰富的文档、教程和示例,方便开发人员学习和使用 Tomcat。

三、Tomcat和Apache两者的对比

比较项目TomcatApache
主要用途Java Web 应用服务器通用 Web 服务器
支持的编程语言主要支持 Java支持多种编程语言如 PHP、Perl 等
性能特点轻量级,处理 Java 应用效率高,启动速度快稳定、成熟,能处理高并发请求,性能强大
配置难度相对较容易配置相对复杂一些
可扩展性与众多 Java 框架集成良好,扩展性强可通过各种模块进行扩展
安全性提供一定的安全保障,如支持 HTTPS可配置多种安全策略,安全性较高
开源性开源免费开源免费
社区支持有庞大的 Java 开发社区支持拥有广泛的用户和开发者社区支持

 

四、练习实验

4.1Tomcat安装

实验环境

红帽7的主机,环境搭建可参考之前的博客文章。

实验步骤

1.官网下载

官网连接:Apache Tomcat® - Welcome!icon-default.png?t=N7T8https://tomcat.apache.org/

 实验wget命令下载到虚拟机:

2.安装java环境

 

[root@web1 ~]# tar zxf apache-tomcat-9.0.91.tar.gz -C /usr/local/
[root@web1 ~]# ln -s /usr/local/apache-tomcat-9.0.91/ /usr/local/tomcat
[root@web1 ~]#/usr/local/tomcat/bin/startup.sh

3.访问tomcat

 

 

4.2生成tomcat的启动文件

实验环境

相同。

实验步骤

1.生成tomcat的主配置文件
[root@web1 ~]# vim /usr/local/tomcat/conf/tomcat.confJAVA_HOME=/etc/alternatives/jre_openjdk

2.生成启动文件
[root@web1 ~]# useradd -s /sbin/nologin -M tomcat[[root@web1 ~]# chown -R tomcat.tomcat /usr/local/tomcat/[root@web1 ~]# vim /lib/systemd/system/tomcat.service[Unit]Description=Tomcat\#After=syslog.target network.target remote-fs.target nss-lookup.targetAfter=syslog.target network.target[Service]Type=forkingEnvironmentFile=/usr/local/tomcat/conf/tomcat.confExecStart=/usr/local/tomcat/bin/startup.shExecStop=/usr/local/tomcat/bin/shutdown.shPrivateTmp=trueUser=tomcatGroup=tomcat[Install]WantedBy=multi-user.target[root@web1 ~]# systemctl daemon-reload
[root@web1 ~]# systemctl enable --now tomcat

3.访问测试

web2:172.25.254.20 同样操作,安装和生成启动文件,测试如下:

 

4.3利用nginx实现反向代理

nginx的搭建参考之前的nginx博客。

实验环境

相同。

实验步骤

1.上传test.jsp文件,负责到指定目录

web2同样操作。

 

2.nginx子配置文件编写

 

3.浏览器访问

4.4实现负载均衡

 

实验环境

相同。

实验步骤

1.修改配置文件

 

2.测试

 

4.5Memcached实验

实验环境

相同。

实验步骤

memcached的安装与启动

[root@web1 ~]# vim /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 0.0.0.0,::1"

 web2同样操作

 

配置 session 共享服务器

1.安装

在两台tomcat主机里传上如下插件,将它们复制到/usr/local/tomcat/bin/目录里

kryo-3.0.3.jar
asm-5.2.jar
objenesis-2.6.jar
reflectasm-1.11.9.jar
minlog-1.3.1.jar
kryo-serializers-0.45.jar
msm-kryo-serializer-2.3.2.jar
memcached-session-manager-tc9-2.3.2.jar
spymemcached-2.12.3.jar
memcached-session-manager-2.3.2.jar

2.修改tomcat配置

 

 

 

3.访问测试

现在在20主机上,我们添加两个数据,test1和test2,然后关闭20主机上tomcat服务,模拟服务器下线,看是否会切到10主机且数据不丢失:

 

 

恢复后,在添加一个4数据查看:  

 

这篇关于企业级WEB应用服务器TOMCAT详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1107017

相关文章

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

mac中资源库在哪? macOS资源库文件夹详解

《mac中资源库在哪?macOS资源库文件夹详解》经常使用Mac电脑的用户会发现,找不到Mac电脑的资源库,我们怎么打开资源库并使用呢?下面我们就来看看macOS资源库文件夹详解... 在 MACOS 系统中,「资源库」文件夹是用来存放操作系统和 App 设置的核心位置。虽然平时我们很少直接跟它打交道,但了

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

Rust 数据类型详解

《Rust数据类型详解》本文介绍了Rust编程语言中的标量类型和复合类型,标量类型包括整数、浮点数、布尔和字符,而复合类型则包括元组和数组,标量类型用于表示单个值,具有不同的表示和范围,本文介绍的非... 目录一、标量类型(Scalar Types)1. 整数类型(Integer Types)1.1 整数字

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

Java操作ElasticSearch的实例详解

《Java操作ElasticSearch的实例详解》Elasticsearch是一个分布式的搜索和分析引擎,广泛用于全文搜索、日志分析等场景,本文将介绍如何在Java应用中使用Elastics... 目录简介环境准备1. 安装 Elasticsearch2. 添加依赖连接 Elasticsearch1. 创