ToB企服应用市场:ToB评测及商务社交产业平台

标题: Linux中安装Tomcat [打印本页]

作者: 缠丝猫    时间: 2024-12-31 22:25
标题: Linux中安装Tomcat

一、Tomcat先容

1.1、Tomcat是什么

   Tomcat(全称Apache Tomcat)是一个开源的Web应用服务器,专门用于运行Java编写的网站和Web应用步伐。它是由Apache Software Foundation开发和维护的,能够实现Java Servlet、JavaServer Pages (JSP) 等Java技术规范,是开发和摆设Java Web应用的常用选择。
    Tomcat之所以被广泛使用,重要是由于它兼具轻量级和功能强盛的特点。作为Servlet容器,Tomcat负责管理Servlet的生命周期,从初始化到销毁,同时支持多线程处理惩罚多个并发请求,确保高效处理惩罚HTTP请求。另外,Tomcat还支持JSP技术,允许开发者在HTML页面中嵌入Java代码,动态生成网页内容。
    Tomcat的历史可以追溯到1999年,当时由Sun Microsystems捐赠给Apache软件基金会,成为Jakarta项目的一部分,并渐渐发展成为今天的独立项目。这一历史配景使得Tomcat不仅在技术上具有深厚的积累,同时也拥有强盛的社区支持。对于开发者来说,无论是初学者照旧专业开发人员,Tomcat都提供了一个稳定且易于上手的平台,便于构建和扩展各种类型的Web应用。
  1.2、Tomcat的工作原理

   Tomcat的工作原理重要涉及其核心组件:连接器(Connector)和容器(Container),以及它们如何协同工作来处理惩罚HTTP请求。
    首先,连接器(Connector)是Tomcat中负责接收HTTP请求的第一个组件。它监听特定端口(如8080),当HTTP请求到达时,Connector接收并解析这些请求,然后转换成Tomcat的Request对象。这一过程涉及到网络I/O和字节流处理惩罚,确保原始HTTP请求被精确转换为Tomcat内部可处理惩罚的格式。
    接下来,处理惩罚后的Request对象传递给容器(Container)。Tomcat的容器系统接纳层次结构,包括Engine、Host、Context和Wrapper四个层级。Request对象首先传递到Engine,然后到Host,接着到Context,末了到Wrapper。每个层级可以包含多个子容器,形成一种父子关系。这种设计使得Tomcat能够高效管理多个应用和请求。
    在Container内部,Request对象继承通过一系列管道(Pipeline)和阀(Valve)进行处理惩罚。这些组件负责实行各种通用功能,比如安全查抄、会话管理以及请求过滤。这个处理惩罚过程为后续目标Servlet的准备提供了必要条件。
    具体到Servlet的调用,当Request对象到达对应的Wrapper时,Wrapper确定由哪一个Servlet来处理惩罚该请求。一旦找到目标Servlet,就会调用它的service方法,该方法根据请求的HTTP方法(如GET或POST)来决定具体调用doGet或doPost等。Servlet然后生成相应,通过同样的管道回传给Connector,最终以HTTP相应的形式返回给客户端。
    Tomcat的工作流程非常注重各组件之间的协同和数据传递。从网络请求的接收和转换,到请求在容器中的层层传递与处理惩罚,每一步都是为了确保差别Web应用和Servlet能够高效、安全地运行。明白这些流程对于优化和摆设Java Web应用至关重要。
  1.3、Tomcat实用的场景


   只管Tomcat具有广泛的应用场景,但对于大型项目或必要更高级功能的企业级应用,大概必要选择更强盛的应用服务器,如WildFly、WebLogic或WebSphere等。这些服务器提供了更多的特性和性能优化,以满意企业级应用的需求。
  1.4、Tomcat与Nginx、Apache比较

1.4.1、上风


1.4.2、劣势


1.4.3、定位功能


1.5、Tomcat 的重要组件


1.6、Tomcat 的重要设置文件


二、Tomcat安装

2.1、查看可用的JDK

  1. [root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum search java|grep jdk
  2. ldapjdk-javadoc.noarch : Javadoc for ldapjdk
  3. openjdk-asmtools-javadoc.noarch : Javadoc for openjdk-asmtools
  4. java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
  5. java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
  6. java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
  7. java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
  8. java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
  9. java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
  10. java-1.7.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
  11. java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
  12. java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
  13. java-1.7.0-openjdk-headless.x86_64 : The OpenJDK runtime environment without
  14. java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
  15. java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
  16. java-1.8.0-openjdk.i686 : OpenJDK Runtime Environment 8
  17. java-1.8.0-openjdk.x86_64 : OpenJDK 8 Runtime Environment
  18. java-1.8.0-openjdk-accessibility.i686 : OpenJDK accessibility connector
  19. java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
  20. java-1.8.0-openjdk-demo.i686 : OpenJDK Demos 8
  21. java-1.8.0-openjdk-demo.x86_64 : OpenJDK 8 Demos
  22. java-1.8.0-openjdk-devel.i686 : OpenJDK Development Environment 8
  23. java-1.8.0-openjdk-devel.x86_64 : OpenJDK 8 Development Environment
  24. java-1.8.0-openjdk-headless.i686 : OpenJDK Headless Runtime Environment 8
  25. java-1.8.0-openjdk-headless.x86_64 : OpenJDK 8 Headless Runtime Environment
  26. java-1.8.0-openjdk-javadoc.noarch : OpenJDK 8 API documentation
  27. java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK 8 API documentation compressed
  28. java-1.8.0-openjdk-src.i686 : OpenJDK Source Bundle 8
  29. java-1.8.0-openjdk-src.x86_64 : OpenJDK 8 Source Bundle
  30. java-11-openjdk.i686 : OpenJDK Runtime Environment 11
  31. java-11-openjdk.x86_64 : OpenJDK 11 Runtime Environment
  32. java-11-openjdk-demo.i686 : OpenJDK Demos 11
  33. java-11-openjdk-demo.x86_64 : OpenJDK 11 Demos
  34. java-11-openjdk-devel.i686 : OpenJDK Development Environment 11
  35. java-11-openjdk-devel.x86_64 : OpenJDK 11 Development Environment
  36. java-11-openjdk-headless.i686 : OpenJDK Headless Runtime Environment 11
  37. java-11-openjdk-headless.x86_64 : OpenJDK 11 Headless Runtime Environment
  38. java-11-openjdk-javadoc.i686 : OpenJDK 11 API documentation
  39. java-11-openjdk-javadoc.x86_64 : OpenJDK 11 API documentation
  40. java-11-openjdk-javadoc-zip.i686 : OpenJDK 11 API documentation compressed in a
  41. java-11-openjdk-javadoc-zip.x86_64 : OpenJDK 11 API documentation compressed in
  42. java-11-openjdk-jmods.i686 : JMods for OpenJDK 11
  43. java-11-openjdk-jmods.x86_64 : JMods for OpenJDK 11
  44. java-11-openjdk-src.i686 : OpenJDK Source Bundle 11
  45. java-11-openjdk-src.x86_64 : OpenJDK 11 Source Bundle
  46. java-11-openjdk-static-libs.i686 : OpenJDK libraries for static linking 11
  47. java-11-openjdk-static-libs.x86_64 : OpenJDK 11 libraries for static linking
  48. ldapjdk.noarch : The Mozilla LDAP Java SDK
  49. openjdk-asmtools.noarch : To develop tools create proper & improper Java
复制代码
2.2、安装OpenJDK 11

  1. [root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum install -y java-11-openjdk java-11-openjdk-devel
复制代码
2.3、设置环境变量

  1. [root@iZbp1izvhfvbrd0mb6ktasZ ~]# vi /etc/profile
  2. export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
  3. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  4. export PATH=$JAVA_HOME/bin:$PATH
复制代码
2.4、验证安装

  1. [root@iZbp1izvhfvbrd0mb6ktasZ ~]# java -version
  2. openjdk version "11.0.23" 2024-04-16 LTS
  3. OpenJDK Runtime Environment (Red_Hat-11.0.23.0.9-2.el7_9) (build 11.0.23+9-LTS)
  4. OpenJDK 64-Bit Server VM (Red_Hat-11.0.23.0.9-2.el7_9) (build 11.0.23+9-LTS, mixed mode, sharing)
复制代码
2.5、查看tomcat的可以用版本

注:以下两条命令都可查看
  1. [root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum list all | grep tomcat
  2. jglobus-ssl-proxies-tomcat.noarch        2.1.0-13.el7                  epel     
  3. tomcat.noarch                            7.0.76-16.el7_9               updates  
  4. tomcat-admin-webapps.noarch              7.0.76-16.el7_9               updates  
  5. tomcat-docs-webapp.noarch                7.0.76-16.el7_9               updates  
  6. tomcat-el-2.2-api.noarch                 7.0.76-16.el7_9               updates  
  7. tomcat-javadoc.noarch                    7.0.76-16.el7_9               updates  
  8. tomcat-jsp-2.2-api.noarch                7.0.76-16.el7_9               updates  
  9. tomcat-jsvc.noarch                       7.0.76-16.el7_9               updates  
  10. tomcat-lib.noarch                        7.0.76-16.el7_9               updates  
  11. tomcat-native.x86_64                     1.2.35-1.el7                  epel     
  12. tomcat-servlet-3.0-api.noarch            7.0.76-16.el7_9               updates  
  13. tomcat-webapps.noarch                    7.0.76-16.el7_9               updates  
  14. tomcatjss.noarch                         7.2.5-1.el7                   base     
  15. [root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum search tomcat
  16. Loaded plugins: fastestmirror
  17. Loading mirror speeds from cached hostfile
  18. ================================================================================== N/S matched: tomcat ===================================================================================
  19. jglobus-ssl-proxies-tomcat.noarch : Globus Java - SSL and proxy certificate support for Tomcat
  20. tomcat-admin-webapps.noarch : The host-manager and manager web applications for Apache Tomcat
  21. tomcat-docs-webapp.noarch : The docs web application for Apache Tomcat
  22. tomcat-javadoc.noarch : Javadoc generated documentation for Apache Tomcat
  23. tomcat-jsp-2.2-api.noarch : Apache Tomcat JSP API implementation classes
  24. tomcat-jsvc.noarch : Apache jsvc wrapper for Apache Tomcat as separate service
  25. tomcat-lib.noarch : Libraries needed to run the Tomcat Web container
  26. tomcat-native.x86_64 : Tomcat native library
  27. tomcat-servlet-3.0-api.noarch : Apache Tomcat Servlet API implementation classes
  28. tomcat-webapps.noarch : The ROOT and examples web applications for Apache Tomcat
  29. tomcatjss.noarch : JSS Connector for Apache Tomcat, a JSSE module for Apache Tomcat that uses JSS
  30. tomcat.noarch : Apache Servlet/JSP Engine, RI for Servlet 3.0/JSP 2.2 API
  31. tomcat-el-2.2-api.noarch : Expression Language v2.2 API
  32.   Name and summary matches only, use "search all" for everything.
复制代码
2.6、安装tomcat

  1. [root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum -y install tomcat
复制代码
2.7、添加环境变量

  1. [root@iZbp1izvhfvbrd0mb6ktasZ ~]# vi /etc/profile
  2. export CATALINA_HOME=/usr/share/tomcat
  3. export PATH=$PATH:$CATALINA_HOME/bin
  4. [root@iZbp1izvhfvbrd0mb6ktasZ ~]# source /etc/profile
复制代码
2.8、启动tomcat

  1. [root@iZbp1izvhfvbrd0mb6ktasZ ~]# systemctl start tomcat
  2. [root@iZbp1izvhfvbrd0mb6ktasZ ~]# systemctl status tomcat
  3. ● tomcat.service - Apache Tomcat Web Application Container
  4.    Loaded: loaded (/usr/lib/systemd/system/tomcat.service; disabled; vendor preset: disabled)
  5.    Active: active (running) since Sun 2024-08-18 17:39:31 CST; 8s ago
  6. Main PID: 12914 (java)
  7.    CGroup: /system.slice/tomcat.service
  8.            └─12914 /usr/lib/jvm/jre/bin/java -Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share/to...
  9. Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: Aug 18, 2024 5:39:32 PM org.apache.catalina.core.StandardService startInternal
  10. Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: INFO: Starting service Catalina
  11. Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: Aug 18, 2024 5:39:32 PM org.apache.catalina.core.StandardEngine startInternal
  12. Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: INFO: Starting Servlet Engine: Apache Tomcat/7.0.76
  13. Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: Aug 18, 2024 5:39:32 PM org.apache.coyote.AbstractProtocol start
  14. Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: INFO: Starting ProtocolHandler ["http-bio-8080"]
  15. Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: Aug 18, 2024 5:39:32 PM org.apache.coyote.AbstractProtocol start
  16. Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: INFO: Starting ProtocolHandler ["ajp-bio-8009"]
  17. Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: Aug 18, 2024 5:39:32 PM org.apache.catalina.startup.Catalina start
  18. Aug 18 17:39:32 iZbp1izvhfvbrd0mb6ktasZ server[12914]: INFO: Server startup in 49 ms
复制代码
2.9、安装Tomcat管理包

  1. [root@iZbp1izvhfvbrd0mb6ktasZ ~]# yum install -y tomcat-webapps tomcat-admin-webapps
复制代码
2.10、设置登录用户路径

  1. [root@iZbp1izvhfvbrd0mb6ktasZ ~]# vi /usr/share/tomcat/conf/tomcat-users.xml
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4