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等相关配置

相关推荐
木古古1840 分钟前
搞一个高效的c/c++开发环境,工具VIm+自研vim插件+Shell脚本
linux·编辑器·vim
茫忙然1 小时前
U 盘搭建免驱 Linux 便携系统教程
linux·服务器
一起逃去看海吧3 小时前
dify-03
java·linux·开发语言
fengyehongWorld3 小时前
Linux 根据端口进行的相关查询
linux
lihao lihao3 小时前
linux匿名管道
linux·运维·服务器
うちは止水3 小时前
weston出图调试
linux·wayland·weston
STDD3 小时前
Farming Simulator 25(模拟农场 25) Linux 专服搭建完全指南
linux·运维·javascript
好好风格3 小时前
宝塔面板 HTTPS 端口证书不生效排查记录
linux·运维·nginx
用户2367829801684 小时前
Linux pgrep 命令详解:按名称查找进程 PID 的高效方法
linux