• Tomcat服务


    目录

    一、Tomcat 核心组件

    二、Tomcat 部署

    三、tomcat 虚拟主机配置

    四、Tomcat 优化


    一、Tomcat 核心组件

    核心三大组件:Web容器、jsp容器、servlet容器

    职能:Web:接收、响应请求;展示动态页面

               

    二、Tomcat 部署

    1、初始换环境

    1. [root@zwb ~]# systemctl stop firewalld
    2. [root@zwb ~]# systemctl disable firewalld
    3. [root@zwb ~]# setenforce 0
    4. setenforce: SELinux is disabled

    2、上传apache-tomcat-9.0.16.tar.gz(tomcat 安装编译安装包)和 jdk-8u201-linux-x64.rpm(JDK安装包)至opt 下

    1. [root@zwb ~]# cd /opt/
    2. [root@zwb opt]# rz -E
    3. [root@zwb opt]# ls
    4. a apache-tomcat-9.0.16.tar.gz jdk-8u201-linux-x64.rpm

    3、安装JDK(java开发工具,使用tomcat需要安装此工具)

    1. # 升级JAVA环境
    2. [root@zwb opt]# rpm -ivh jdk-8u201-linux-x64.rpm
    3. 警告:jdk-8u201-linux-x64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID ec551f03: NOKEY
    4. 准备中... ################################# [100%]
    5. 正在升级/安装...
    6. 1:jdk1.8-2000:1.8.0_201-fcs ################################# [100%]
    7. Unpacking JAR files...
    8. tools.jar...
    9. plugin.jar...
    10. javaws.jar...
    11. deploy.jar...
    12. rt.jar...
    13. jsse.jar...
    14. charsets.jar...
    15. localedata.jar...

    设置java环境变量

    1. [root@zwb opt]# vim /etc/profile.d/java.sh
    2. export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
    3. export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
    4. export PATH=$JAVA_HOME/bin:$PATH
    5. ##查看当前java信息
    6. [root@zwb opt]# java -version
    7. openjdk version "1.8.0_181"
    8. OpenJDK Runtime Environment (build 1.8.0_181-b13)
    9. OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
    10. 重新加载、查看版本
    11. [root@zwb opt]# source /etc/profile.d/java.sh
    12. 再查看JAVA 环境
    13. [root@zwb opt]# java -version
    14. java version "1.8.0_201"
    15. Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
    16. Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
    17. ### 更新完成

    4、启动

    1. ##优化(环境变量优化)
    2. ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
    3. ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
    4. #### 启动tomcat
    5. [root@zwb opt]# startup.sh
    6. Using CATALINA_BASE: /usr/local/tomcat
    7. Using CATALINA_HOME: /usr/local/tomcat
    8. Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    9. Using JRE_HOME: /usr/java/jdk1.8.0_201-amd64
    10. Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    11. Tomcat started.
    12. [root@zwb opt]# netstat -natp | grep 8080
    13. tcp6 0 0 :::8080 :::* LISTEN 20889/java

    5、验证

    6、优化 Tomcat 启动速度

    优化方案:修改 jdk 参数加快启动速度

    第一次启动 tomcat 可能会发现 tomcat 启动很慢,默认情况下可能需要几十秒,此时可以修改 jdk 参数进行优化。

    1. [root@zwb opt]# cd /usr/java/jdk1.8.0_201-amd64/jre/lib/security/
    2. [root@zwb security]# vim java.security
    3. ....................
    4. 117 securerandom.source=file:/dev/urandom
    5. ###### /dev/random和/dev/urandom都是伪终端,但是/dev/urandom提供的数据流更快
    6. ....................

    7、tomcat目录内容

    1. [root@zwbtom tomcat]# ll
    2. 总用量 124
    3. drwxr-x--- 2 root root 4096 9月 6 14:34 bin
    4. #存放启动和关闭 Tomcat 的脚本文件,比较常用的是 catalina.sh、startup.sh、shutdown.sh 三个文件
    5. -rw-r----- 1 root root 19203 2月 5 2019 BUILDING.txt
    6. drwx------ 3 root root 254 9月 6 14:38 conf
    7. #存放 Tomcat 服务器的各种配置文件,比较常用的是 server.xml、context.xml、tomcat-users.xml、
    8. #web.xml 四个文件
    9. -rw-r----- 1 root root 6095 2月 5 2019 CONTRIBUTING.md
    10. drwxr-x--- 2 root root 4096 9月 6 14:34 lib
    11. #存放 Tomcat 服务器的 jar 包,一般不作任何改动,除非连接第三方服务,比如 redis,那就需要添加相
    12. #对应的 jar 包
    13. -rw-r----- 1 root root 57092 2月 5 2019 LICENSE
    14. drwxr-x--- 2 root root 197 9月 6 14:38 logs #存放 Tomcat 日志
    15. -rw-r----- 1 root root 2333 2月 5 2019 NOTICE
    16. -rw-r----- 1 root root 3255 2月 5 2019 README.md
    17. -rw-r----- 1 root root 6854 2月 5 2019 RELEASE-NOTES
    18. -rw-r----- 1 root root 16262 2月 5 2019 RUNNING.txt
    19. drwxr-x--- 2 root root 30 9月 6 14:34 temp #存放 Tomcat 运行时产生的文件
    20. drwxr-x--- 7 root root 81 2月 5 2019 webapps #存放项目资源的目录
    21. drwxr-x--- 3 root root 22 9月 6 14:38 work
    22. #Tomcat 工作目录,一般清除 Tomcat 缓存的时候会使用到

    三、tomcat 虚拟主机配置

    需求:公司会有多个项目需要运行,那么肯定不可能是一台服务器上运行多个 Tomcat 服务,这样
    会消耗太多的系统资源。此时,就需要使用到 Tomcat 虚拟主机。

    先新增两个虚拟机: www.zhu.com 和www.wen.com

    1、配置映射关系:

    1. [root@zwbtom tomcat]# vim /etc/hosts
    2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
    3. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
    4. 192.168.159.20 www.zhu.com www.wen.com

    2、创建目录设置主页内容

    1. [root@zwbtom tomcat]# cd webapps/
    2. [root@zwbtom webapps]# ls
    3. docs examples host-manager manager ROOT
    4. [root@zwbtom webapps]# mkdir zhu wen
    5. [root@zwbtom webapps]# ls
    6. docs examples host-manager manager ROOT wen zhu ###创建目录zhu 和 wen
    7. [root@zwbtom webapps]#
    8. ###设置主页内容
    9. [root@zwbtom webapps]# echo "this is zhu page\!" > /usr/local/tomcat/webapps/zhu/index.jsp
    10. [root@zwbtom webapps]# echo "this is wen page\!" > /usr/local/tomcat/webapps/wen/index.jsp

    3、修改tomcat主配置文件并保存

     vim /usr/local/tomcat/conf/server.xml

    配置详解
    Host name :主机名
    appBase : Tomcat程序工作目录,相对路径为webapps,绝对路径为/usr/local/tomcat/webapps
    unpackWARs :tomcat在webapps文件夹中发现war包文件时,是否自动将其解压
    autoDeploy :设为true,则web.xml发生变化时,tomcat自动重新部署程序。实现这个功能必需允许后台处理
    xmlValidation :是否开启对XML文件的验证
    xmlNamespaceAware :是否启用xml命名空间,设置该值与xmlValidation为true,表示对web.xml文件执行有效性检验

    docBase : WEB应用的目录(本地路径)
    path:设置访问的URI为WEB应用的根目录(URL路径),""表示默认,加载系统中自带的类(class文件)
    reloadable :是否在程序有改动时重新载入

    4、关闭tomcat 并重启

    1. [root@zwbtom conf]# shutdown.sh ###关闭
    2. Using CATALINA_BASE: /usr/local/tomcat
    3. Using CATALINA_HOME: /usr/local/tomcat
    4. Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    5. Using JRE_HOME: /usr/java/jdk1.8.0_201-amd64
    6. Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    7. [root@zwbtom conf]# sleep 5 ##如果写tomcat的Shell脚本需要注意,防止运行中的程序没有完全关闭
    8. ##和开启
    9. [root@zwbtom conf]# startup.sh ##开启
    10. Using CATALINA_BASE: /usr/local/tomcat
    11. Using CATALINA_HOME: /usr/local/tomcat
    12. Using CATALINA_TMPDIR: /usr/local/tomcat/temp
    13. Using JRE_HOME: /usr/java/jdk1.8.0_201-amd64
    14. Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
    15. Tomcat started.
    16. [root@zwbtom conf]# netstat -antp | grep 8080
    17. tcp6 0 0 :::8080 :::* LISTEN 16996/java
    18. [root@zwbtom conf]# curl www.zhu.com:8080
    19. this is zhu page\!
    20. [root@zwbtom conf]# curl www.wen.com:8080
    21. this is wen page\!

    四、Tomcat 优化

    Tomcat 默认安装下的缺省配置并不适合生产环境,它可能会频繁出现假死现象需要重启,只有通过不断压测优化才能让它最高效率稳定的运行。
    优化主要包括三方面,分别为操作系统优化(内核参数优化),Tomcat配置文件参数优化,Java虚拟机(JVM)调优。

    配置/usr/local/tomcat/conf/server.xml配置文件 

    1. [root@zwbtom ~]# cd /usr/local/tomcat/conf/
    2. [root@zwbtom conf]# vim server.xml
    3. .....................................
    4. 71 redirectPort="8443"
    5. 72 minSpareThreads="50"
    6. 73 enableLookups="false"
    7. 74 disableUploadTimeout="true"
    8. 75 acceptCount="300"
    9. 76 maxThreads="500"
    10. 77 processorCache="500"
    11. 78 URIEncoding="UTF-8"
    12. 79 compression="on"
    13. 80 compressionMinSize="2048"
    14. 81 compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,image/gif,image/jpg,image/png" />
    15. 82