Linux系统架构----Tomcat 部署

一.Tomcat概述

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

一般来说,tomcat虽然和Apache或者Nginx这些Web服务器一样,具有处理HTML页面的功能,但是由于其处理静态HTML的能力远不及Apache或者Nginx,因此Tomcat通常作为一个Servlet和JSP容器。

注:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

二.Tomcat的部署

  • 部署环境
主机 操作系统 IP地址 主要软件
Tomcat服务器 centos8 10.1.1.171 jdk-8u333-linux-x64.tar.gz、apache-tomcat-9.0.64.tar.gz
注:在安装Tomcat之前必须安装JDK,JDK是Sun公司提供的Java语言的软件开发工具包,其中包含Java虚拟机(JVM)。编写好的Java源程序经过编译可以形成Java的字节码,只要安装了JDK,就可以利用JVM解释这些字节码文件,从而保证了Java的跨平性。在平台兼容性方面,JDK作为解释字节码并据此调用操作系统的API(功能接口)实现对应功能的Java虚拟机,与操作系统类型和平台位数密切相关,因此存在不同版本。
  • 安装JDK,配置Java环境

    #由于下载包比较慢已经提前下载了
    [root@tomcat ~]# ls
    anaconda-ks.cfg jdk-8u333-linux-x64.tar.gz
    [root@tomcat ~]# tar xf jdk-8u333-linux-x64.tar.gz -C /usr/local
    [root@tomcat ~]# cd /usr/local
    [root@tomcat local]# ln -s jdk1.8.0_333/ jdk
    #配置环境变量
    [root@tomcat local]# vim /etc/profile.d/jdk.sh
    [root@tomcat ~]# cat /etc/profile.d/jdk.sh
    export JAVA_HOME=/usr/local/jdk
    export PATH=PATH:JAVA_HOME/bin
    #生成环境变量
    [root@tomcat local]# . /etc/profile.d/jdk.sh
    #验证安装
    [root@tomcat local]# java -version
    java version "1.8.0_333"
    Java(TM) SE Runtime Environment (build 1.8.0_333-b02)
    Java HotSpot(TM) 64-Bit Server VM (build 25.333-b02, mixed mode)
    [root@tomcat local]# which java
    /usr/local/jdk/bin/java
    #查找jdk路径
    [root@tomcat ~]# find / -name jdk
    /usr/local/jdk

  • 二进制安装tomcat,提前准备好安装包

    [root@tomcat ~]# tar xf apache-tomcat-9.0.64.tar.gz -C /usr/local
    [root@tomcat ~]# cd /usr/local/
    [root@tomcat local]# ln -s apache-tomcat-9.0.64/ tomcat
    #指定PATH变量
    [root@tomcat ~]## echo 'PATH=/usr/local/tomcat/bin:$PATH' > /etc/profile.d/tomcat.sh
    [root@tomcat ~]# . /etc/profile.d/tomcat.sh
    [root@tomcat ~]# echo $PATH
    /usr/local/tomcat/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/jdk/bin
    #查看当前变量设置和命令用法
    [root@tomcat ~]# catalina.sh
    Using CATALINA_BASE: /usr/local/tomcat
    Using CATALINA_HOME: /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME: /usr/local/jdk
    #查看环境变量和版本信息
    [root@tomcat ~]# catalina.sh version
    Using CATALINA_BASE: /usr/local/tomcat
    Using CATALINA_HOME: /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME: /usr/local/jdk
    #启动tomcat
    [root@tomcat ~]# 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/local/jdk
    Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    Using CATALINA_OPTS:
    Tomcat started
    #查看端口
    [root@tomcat ~]# ss -ntl
    State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
    LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
    LISTEN 0 100 127.0.0.1:25 0.0.0.0:*
    LISTEN 0 1 [::ffff:127.0.0.1]:8005 :
    LISTEN 0 100 :8080 :
    LISTEN 0 128 [::]:22 [::]:

    LISTEN 0 100 [::1]:25 [::]:*
    #查看进程是以root启动的
    [root@tomcat ~]# ps aux |grep tomcat
    root 23461 27.7 4.1 4213856 118128 pts/0 Sl 14:35 0:07 /usr/local/jdk/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogMana
    #关闭tomcat
    [root@tomcat ~]# 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/local/jdk
    Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    Using CATALINA_OPTS:
    #再次用不同方式启动tomcat
    [root@tomcat ~]# catalina.sh start
    Using CATALINA_BASE: /usr/local/tomcat
    Using CATALINA_HOME: /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME: /usr/local/jdk
    Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    Using CATALINA_OPTS:
    Tomcat started.
    [root@tomcat ~]## ss -ntl
    State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
    LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
    LISTEN 0 100 127.0.0.1:25 0.0.0.0:*
    LISTEN 0 1 [::ffff:127.0.0.1]:8005 :
    LISTEN 0 100 :8080 :
    LISTEN 0 128 [::]:22 [::]:

    LISTEN 0 100 [::1]:25 [::]:*
    #再次用不同方式关闭
    [root@tomcat ~]# catalina.sh stop
    Using CATALINA_BASE: /usr/local/tomcat
    Using CATALINA_HOME: /usr/local/tomcat
    Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    Using JRE_HOME: /usr/local/jdk
    Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    Using CATALINA_OPTS:

三.验证Tomcat服务器

[root@tomcat local]# ps aux |grep tomcat
root        1812 97.6  4.1 4213856 116056 pts/1  Sl   14:40   0:09 /usr/local/jdk/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/localtomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root        1845  0.0  0.0  12348  1068 pts/1    S+   14:40   0:00 grep --color=auto tomcat
[root@tomcat ~]# ss -ntl
State   Recv-Q  Send-Q        Local Address:Port   Peer Address:Port Process  
LISTEN  0       100               127.0.0.1:25          0.0.0.0:*             
LISTEN  0       128                 0.0.0.0:22          0.0.0.0:*             
LISTEN  0       100                   [::1]:25             [::]:*             
LISTEN  0       1        [::ffff:127.0.0.1]:8005              *:*             
LISTEN  0       100                       *:8080              *:*             
LISTEN  0       128                    [::]:22             [::]:* 
  • 配置tomcat自启动的service文件

    #创建tomcat专用账户
    [root@tomcat ~]# useradd -r -s /sbin/nologin tomcat
    #准备service文件中相关环境
    [root@tomcat ~]# vim /usr/local/tomcat/conf/tomcat.conf
    JAVA_HOME=/usr/local/jdk #注意写此环境之前确定jdk路径
    [root@tomcat ~]# chown -R tomcat.tomcat /usr/local/tomcat/
    #创建tomcat.service
    [root@tomcat ~]# vim /lib/systemd/system/tomcat.service
    [root@tomcat ~]# cat /lib/systemd/system/tomcat.service
    [Unit]
    Description=Tomcat
    After=syslog.target network.target
    [Service]
    Type=forking
    EnvironmentFile=/usr/local/tomcat/conf/tomcat.conf
    ExecStart=/usr/local/tomcat/bin/startup.sh
    ExecStop=/usr/local/tomcat/bin/shutdown.sh
    PrivateTmp=true
    User=tomcat
    Group=tomcat
    [Install]
    WantedBy=multi-user.target
    [root@tomcat ~]# systemctl daemon-reload
    [root@tomcat ~]# systemctl enable --now tomcat
    [root@tomcat ~]# systemctl restart tomcat.service
    [root@tomcat ~]# systemctl status tomcat.service
    #查看日志
    [root@tomcat1 ~]# tail /var/log/messages
    Jan 19 15:37:54 tomcat1 systemd[1]: Started dnf makecache.
    Jan 19 17:29:53 tomcat1 systemd[1]: Starting dnf makecache..

四.Tomcat的配置相关说明

  • tomcat的主目录为 /usr/local/tomcat

    [root@tomcat ~]# ll /usr/local/tomcat/
    总用量 128
    drwxr-x--- 2 tomcat tomcat 4096 3月 14 14:39 bin
    -rw-r----- 1 tomcat tomcat 18986 6月 3 2022 BUILDING.txt
    drwx------ 3 tomcat tomcat 273 3月 14 14:47 conf
    -rw-r----- 1 tomcat tomcat 6210 6月 3 2022 CONTRIBUTING.md
    drwxr-x--- 2 tomcat tomcat 4096 3月 14 14:39 lib
    -rw-r----- 1 tomcat tomcat 57092 6月 3 2022 LICENSE
    drwxr-x--- 2 tomcat tomcat 197 3月 14 14:40 logs
    -rw-r----- 1 tomcat tomcat 2333 6月 3 2022 NOTICE
    -rw-r----- 1 tomcat tomcat 3398 6月 3 2022 README.md
    -rw-r----- 1 tomcat tomcat 6901 6月 3 2022 RELEASE-NOTES
    -rw-r----- 1 tomcat tomcat 16505 6月 3 2022 RUNNING.txt
    drwxr-x--- 2 tomcat tomcat 30 3月 14 14:39 temp
    drwxr-x--- 7 tomcat tomcat 81 6月 3 2022 webapps
    drwxr-x--- 3 tomcat tomcat 22 3月 14 14:40 work

  • 主要目录说明

    /bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件
    /conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml
    /doc:存放Tomcat文档
    /server:包含三个子目录:classes、lib和webapps
    /server/lib:存放Tomcat服务器所需的各种JAR文件
    /server/webapps:存放Tomcat自带的两个WEB应用admin应用和 manager应用
    /common/lib:存放Tomcat服务器以及所有web应用都可以访问的jar文件
    /shared/lib:存放所有web应用都可以访问的jar文件(但是不能被Tomcat服务器访问)
    /logs:存放Tomcat执行时的日志文件
    /src:存放Tomcat的源代码
    /webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录
    /work:存放JSP编译后产生的class文件

  • 主要配置文件

    [root@tomcat ~]# cd /usr/local/tomcat/
    [root@tomcat tomcat]# cd conf/
    [root@tomcat conf]# ll
    总用量 236
    drwxr-x--- 3 tomcat tomcat 23 3月 14 14:40 Catalina
    -rw------- 1 tomcat tomcat 12953 6月 3 2022 catalina.policy
    -rw------- 1 tomcat tomcat 7308 6月 3 2022 catalina.properties
    -rw------- 1 tomcat tomcat 1400 6月 3 2022 context.xml
    -rw------- 1 tomcat tomcat 1149 6月 3 2022 jaspic-providers.xml
    -rw------- 1 tomcat tomcat 2313 6月 3 2022 jaspic-providers.xsd
    -rw------- 1 tomcat tomcat 4144 6月 3 2022 logging.properties
    -rw------- 1 tomcat tomcat 7580 6月 3 2022 server.xml
    -rw-r--r-- 1 tomcat tomcat 25 3月 14 14:47 tomcat.conf
    -rw------- 1 tomcat tomcat 2756 6月 3 2022 tomcat-users.xml
    -rw------- 1 tomcat tomcat 2558 6月 3 2022 tomcat-users.xsd
    -rw------- 1 tomcat tomcat 172439 6月 3 2022 web.xml

    catalina.policy:权限控制配置文件
    catalina.properties:Tomcat的属性配置文件
    context.xml:上下文配置文件
    logging.properties:日志相关配置文件
    server.xml:主配置文件,通过配置文件,可以修改tomcat的启动端口、网站目录、虚拟主机、开启https等功能
    tomcat-user.xml/.xsd:管理用户配置文件
    web.xml:Tomcat的servlet、servlet-mapping、filter、MIME等相关配置

相关推荐
林农1 小时前
C05S14-MySQL高级语句
linux·mysql·云计算
Wanliang Li2 小时前
Linux电源管理——CPU Hotplug 流程
linux·嵌入式硬件·嵌入式·armv8·电源管理·cpuhotplug
fnd_LN2 小时前
Linux文件目录 --- mkdir命令,创建目录,多级目录,设置目录权限
linux·运维·服务器
达帮主2 小时前
7.C语言 宏(Macro) 宏定义,宏函数
linux·c语言·算法
行思理2 小时前
Linux 下SVN新手操作手册
linux·运维·svn
青年有志2 小时前
深入浅出 MyBatis | CRUD 操作、配置解析
数据库·tomcat·mybatis
羊村懒哥2 小时前
tomcat-安装笔记(包含虚拟主机配置)
java·笔记·tomcat
初学者丶一起加油2 小时前
C语言基础:指针(数组指针与指针数组)
linux·c语言·开发语言·数据结构·c++·算法·visual studio
一只搬砖的猹3 小时前
cJson系列——常用cJson库函数
linux·前端·javascript·python·物联网·mysql·json
莫固执,朋友4 小时前
Linux下编译 libwebsockets简介和使用示例
linux·websocket·音视频