• tomcat安装与基本使用


    目录

    一.tomcat概述

    二.安装tomcat

    1.安装

    2.注意事项

     3.测试

    1)测试静态页面

    2)测试动态页面

    三.在tomcat创建虚拟主机

    1.初步修改

    2.增加自动解war包,自动更新

    四.tomcat访问路径与页面位置

    1.使用Context path添加默认页面访问本地的文件

    2.修改自定义目录下的二级目录使其不是默认ROOT(docBase)

    3.跳过一级主目录直接访问docBase指定的目录

    4.在访问网页后添加虚拟路径访问本地的自定意的目录

    5.测试加path写的目录跳到appBase自定意的目录下

    6.多个Context

    五.虚拟主机添加日志功能

    六.tomcat搭建https网站

    1.环境准备

    2.配置tomcat


    一.tomcat概述

    Java概述

    • java是一种跨平台的、面向对象的程序设计语言,Java技术具有卓越的通用性、高效性、平台移植性和安全性。

    • Java体系

      • Java SE(标准版)

      • Java EE(企业版)

    JDK概述

    • JDK(JavaDevelopmentKit)是Sun针对Java开发者推出的 Java语言的软件开发工具包 JDK是整个Java的核心

      • 包括了Java运行环境

      • Java工具(如编译、排错、打包等工具)

      • Java基础的类库

    JRE概述

    • JRE(Java Runtime Environment,Java运行环境),JRE是JDK的子集 JRE包括

    • Java虚拟机(jvm)

    • Java核心类库和支持文件

    • 不包含开发工具(JDK) --编译器、调试器和其它工具

    Java Servlet

    • Servlet是iava扩展Web服务器功能的组件规范

    • 常见Servlet容器

      • IBM websphere

      • 0racle weblogic

      • Apache tomcat

      • RedHat Jboss

    二.安装tomcat

    1.安装

    1. ~]# systemctl stop firewalld
    2. # 下载tomcat(官网:https://tomcat.apache.org/)
    3. ~]# wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.65/bin/apache-tomcat-9.0.65.tar.gz
    4. ~]# tar -xf apache-tomcat-9.0.65.tar.gz -C /usr/local/tomcat
    5. ~]# yum -y install java-1.8.0-openjdk # 安装jdk
    6. ~]# cd /usr/local/tomcat/
    7. ~]# bin/startup.sh           # 开启服务
    8. http://tomcat的ip:8080/      # 使用浏览器访问
    9. # 注意tomcat是绿色软件解压就可以直接用

    2.注意事项

    1. ~]# ls /usr/local/tomcat/
    2. # tomcat目录: bin 存放主要程序 logs 存放日志
    3. # conf 配置文件 webapps 存放网站页面
    4. # lib 存放库文件 work 存放编译之后的页面
    5. ~]# netstat -ntulp | grep java   # 检查如果8005、8009、8080端口则正常
    6. # 8080 网站访问的端口
    7. # 8009 apache基金会内部使用的端口
    8. # 8005 关闭程序的端口
    9. ## 有时会出现端口缺少导致tomcat运行异常可以用以下方法解决
    10. #解决方案一:
    11. ~]# mv /dev/random /dev/random.bak   # 将random改名
    12. ~]# ln -s /dev/urandom /dev/random       # 用urandom替换random
    13. # 解决方案二:
    14. ~]# yum -y install rng-tools
    15. ~]# systemctl start rngd
    16. ## 这个问题是因为是tomcat开启需要随机字符串(多用一下服务器就会有随机字符串了,或用urandom内的无限字符串)

     3.测试

    1)测试静态页面

    1. ~]# cd /usr/local/tomcat
    2. ~]# echo "tomcat-test~~~~" > webapps/ROOT/test01.html
    3. #http://tomcat服务器的ip:8080/test01.html   浏览器访问测试

    2)测试动态页面

    1. ~]# cd  /usr/local/tomcat
    2. ~]# vim webapps/ROOT/test02.jsp
    3. Now time is: <%=new java.util.Date()%>
    4. # http://tomcat服务器的ip:8080/test02.jsp 浏览器访问测试,刷新可以看到时间变化

    在浏览器设置看查看中文编码(火狐浏览器)

    三.在tomcat创建虚拟主机

    1.初步修改

    1. ##1.修改配置文件
    2. # 注:一个Host就是一个虚拟主机
    3. ~]# cd /usr/local/tomcat/
    4. ~]# vim conf/server.xml   # 打开配置文件Host行上添加虚拟主机配置(注意大写,并且可以把默认的主机域名也修改成www.a.com)
    5. ......
    6. "www.b.com" appBase="web_b" >
    7. ......
    8. ## 2.创建测试网站
    9. ~]# mkdir -p web_b/ROOT   # 之后创建b网站的目录
    10. ~]# echo "tomcat-A~~~" > webapps/ROOT/index.html
    11. ~]# echo "tomcat-B~~~" > web_b/ROOT/index.html
    12. ##3.测试(重启)
    13. ~]# bin/shutdown.sh       # 关闭tomcat
    14. ~]# bin/startup.sh       # 开启
    15. ~]# tail -1 /etc/hosts   # 查看域名解析
    16. tomcat服务的ip www.a.com www.b.com www.c.com
    17. ~]# curl www.a.com:8080   # 测试
    18. tomcat-A~~~
    19. ~]# curl www.b.com:8080
    20. tomcat-B~~~

    2.增加自动解war包,自动更新

    1. #1.添加功能
    2. ~]# cd /usr/local/tomcat/
    3. ~]# vim conf/server.xml
    4. .......
    5. "www.b.com" appBase="web_b"
    6. unpackWARs="true" autoDeploy="true">     # 添加unpackWARs自动解war包,和autoDeploy可以自动更新开发工程师编写的网站功能代码
    7. .......
    8. ~]# bin/shutdown.sh     # 然后重启tomcat
    9. ~]# bin/startup.sh
    10. ~]# netstat -ntulp | grep java   # 检查
    11. #2.测试
    12. #首先tomcat服务必须是开启状态
    13. ~]# yum -y install java-1.8.0-openjdk-devel   # 安装软件包
    14. ~]# jar -cf b.war /var/log     # 之后可以使用jar命令打war包
    15. ~]# cp b.war web_b/             # 将war包放入虚拟主机的网页目录
    16. ~]# ls web_b/                   # 检查,可以看到已经自动解开
    17. # 注意:9.0.65好像自带解war包的能力

    四.tomcat访问路径与页面位置

    Context path 匹配用户输入的地址栏

    docBase 可以定义网站页面位置

    注:默认在webapps/ROOT/;Context可添加多个

    1.使用Context path添加默认页面访问本地的文件

    1. # 默认是访问Root
    2. ~]# cd /usr/local/tomcat/
    3. ~]# vim conf/server.xml
    4. .......
    5. "www.b.com" appBase="web_b"
    6. unpackWARs="true" autoDeploy="true">
    7. "" docBase="" />   # 添加本行
    8. # appBase是访问主目录而ROOT是默认的下级目录,docBase表示不访问ROOT而访问其他的目录,这里设置成空表示直接访问一级目录web_b(此时path和docBase都是空)
    9. # path 只是网页要输入的目录,本地不需要存在。docBase指定的目录则需要真实存在的
    10. ~]# echo "web_b/index.html" > web_b/index.html       # 创建素材,定义新路径
    11. ~]# echo "web_b/ROOT/index.html" > web_b/ROOT/index.html # 默认页面路径
    12. ~]# curl www.b.com:8080   # 测试可以看到的是默认的页面路径
    13. ~]# bin/shutdown.sh
    14. ~]# bin/startup.sh
    15. ~]# curl www.b.com:8080     # 重启后测试可以看到新路径

    2.修改自定义目录下的二级目录使其不是默认ROOT(docBase)

    1. # 默认是访问ROOT
    2. ~]# cd /usr/local/tomcat/
    3. ~]# vim conf/server.xml
    4. .......
    5. "www.b.com" appBase="web_b"
    6. unpackWARs="true" autoDeploy="true">
    7. "" docBase="abc" />    # 修改成abc
    8. # 这样默认页的本地路径就会是web_b/abc/(此时path是空,而docBase是等于abc)
    9. ~]# mkdir web_b/abc                 # 创建abc目录
    10. ~]# echo "web_b/abc/index.html" > web_b/abc/index.html                 # 创建测试页面
    11. # 重启tomcat
    12. ~]# bin/shutdown.sh
    13. ~]# bin/startup.sh
    14. ~]# curl www.b.com:8080               # 再次访问可以看到新路径的页面

    3.跳过一级主目录直接访问docBase指定的目录

    1. # 默认是访问appBase/Root
    2. ~]# cd /usr/local/tomcat/
    3. ~]# vim conf/server.xml
    4. .....
    5. "www.b.com" appBase="web_b"
    6. unpackWARs="true" autoDeploy="true">
    7. "" docBase="/abc" /> # 当此处使用绝对路径时,可以更自由定义网页位置
    8. # 测试访问就不会在去调用appBase的目录了(此时path是空而docBase是等于/abc)
    9. ~]# mkdir /abc # 创建主目录
    10. ~]# echo "/abc/index.html" > /abc/index.html
    11. # 重启tomcat
    12. ~]# bin/shutdown.sh
    13. ~]# bin/startup.sh
    14. ~]# curl www.b.com:8080 # 访问测试,看到的是/abc/index.html的页面

    4.在访问网页后添加虚拟路径访问本地的自定意的目录

    1. # 之前的配置都不能在网页后面再次输入目录,这里可以解决这个问题
    2. # 默认是访问appBase/Root
    3. ~]# cd /usr/local/tomcat/
    4. ~]# vim conf/server.xml
    5. ....
    6. "www.b.com" appBase="web_b"
    7. unpackWARs="true" autoDeploy="true">
    8. "/test" docBase="/abc" /> # path后面添加内容可以匹配用户访问路径
    9. # 注:此时访问域名加path后面的目录值就会直接去访问docBase后面的目录值下的网页文件,而域名后不加目录则访问默认配置appBase下的值与Context就无关了
    10. ....
    11. # 重启tomcat
    12. ~]# bin/shutdown.sh
    13. ~]# bin/startup.sh
    14. ~]# curl www.b.com:8080/test/
    15. /abc/index.html
    16. ~]# curl www.b.com:8080
    17. web_b/ROOT/index.html

    5.测试加path写的目录跳到appBase自定意的目录下

    1. # 默认是访问appBase/Root
    2. ~]# cd /usr/local/tomcat/
    3. ~]# vim conf/server.xml
    4. ....
    5. "www.b.com" appBase="web_b"
    6. unpackWARs="true" autoDeploy="true">
    7. "/test" docBase="abc" /> //将/abc改成abc
    8. ....
    9. # 重启tomcat
    10. ~]# bin/shutdown.sh
    11. ~]# bin/startup.sh
    12. ~]# curl www.b.com:8080/test/
    13. web_b/abc/index.html
    14. ~]# curl www.b.com:8080
    15. web_b/ROOT/index.html

    6.多个Context

    访问www.b.com:8080 看到的是/usr/local/tomcat/test01/a/index.html中的内容

    访问www.b.com:8080/abc/ 看到的是/var/www/html/index.html中的内容

    1. # 默认是访问appBase/Root
    2. ~]# cd /usr/local/tomcat/
    3. ~]# vim conf/server.xml
    4. ....
    5. "www.b.com" appBase="test01"
    6. unpackWARs="true" autoDeploy="true">
    7. "" docBase="a" />
    8. "/abc" docBase="/var/www/html" />
    9. ....
    10. ~]# mkdir -p test01/a # 创建测试目录
    11. ~]# echo "/var/www/html" > /var/www/html/index.html
    12. ~]# echo "/usr/local/tomcat/test01/a/index.html" > test01/a/index.html # 创建测试文件
    13. # 重启tomcat
    14. ~]# bin/shutdown.sh
    15. ~]# bin/startup.sh
    16. ~]# curl www.b.com:8080
    17. /usr/local/tomcat/test01/a/index.html
    18. ~]# curl www.b.com:8080/abc/
    19. /var/www/html

    五.虚拟主机添加日志功能

    1. ~]# cd /usr/local/tomcat/
    2. ~]# vim conf/server.xml
    3. ....
    4. # 修改配置文件,复制最后一页默认虚拟主机的日志配置
    5. ## directory:日志存放目录
    6. ## prefix:日志名称(会自动创建)
    7. ## suffix:日志后缀名
    8. "www.b.com" appBase="test01"
    9. unpackWARs="true" autoDeploy="true">
    10. "" docBase="a" />
    11. "/abc" docBase="/var/www/html" />
    12. "org.apache.catalina.valves.AccessLogValve" directory="logs"
    13. prefix="www-b-com" suffix=".log"
    14. pattern="%h %l %u %t "%r" %s %b" />
    15. .....
    16. # 配置好之后开启或者重启tomcat服务
    17. ~]# bin/shutdown.sh
    18. ~]# bin/startup.sh
    19. ~]# curl www.b.com:8080 # 访问一次网站,可以产生日志记录
    20. ~]# ls logs/ # 查看日志目录可以看到b网站的日志名称
    21. www-b-com.2022-08-21.log

    六.tomcat搭建https网站

    1.环境准备

    1. ~]# wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.65/bin/apache-tomcat-9.0.65.tar.gz
    2. ~]# tar -xf apache-tomcat-9.0.65.tar.gz -C /usr/local/tomcat
    3. ~]# cp -r apache-tomcat-8.0.30 /usr/local/tomcat
    4. ~]# yum -y install java-1.8.0-openjdk
    5. ~]# cd /usr/local/tomcat/
    6. ~]# vim conf/server.xml # 修改配置文件,创建b虚拟主机
    7. ......
    8. "www.b.com" appBase="web_b" >
    9. "www.a.com" appBase="webapps"
    10. ....
    11. ~]# mkdir -p web_b/ROOT # 然后创建b网站目录
    12. ~]# echo "tomcat-A~~~" > webapps/ROOT/index.html
    13. ~]# echo "tomcat-B~~~" > web_b/ROOT/index.html
    14. ~]# mv /dev/random /dev/random.bak
    15. ~]# ln -s /dev/urandom /dev/random
    16. ~]# bin/startup.sh # 开启服务
    17. ~]# curl www.a.com:8080
    18. tomcat-A~~~
    19. ~]# curl www.b.com:8080
    20. tomcat-B~~~

    2.配置tomcat

    1. ~]# cd /usr/local/tomcat/
    2. ~]# vim conf/server.xml
    3. ....
    4. # 修改配置文件,打开找到85或以上几行行,将前后的注释删除
    5. "8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
    6. maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
    7. clientAuth="false" sslProtocol="TLS"
    8. keystoreFile="/usr/local/tomcat/keystore"
    9. keystorePass="123456" /> # 这里
    10. 添加keystoreFile(指定公钥私钥文件)和keystorePass(公钥私钥文件密码)
    11. ~]# keytool -genkeypair -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/keystore # 创建密钥对,别名是tomcat,加密算法是RSA,最后是存储位置
    12. 输入密钥库口令: 这里输入123456
    13. 再次输入新口令: 再次输入123456之后回答一系列问题,可以都写"yk"您的名字与姓氏是什么?
    14. [Unknown]: yk
    15. .....
    16. CN=yk, OU=yk, O=yk, L=yk, ST=yk, C=yk是否正确?
    17. [否]: y
    18. 输入 的密钥口令
    19. (如果和密钥库口令相同, 按回车): 直接敲回车
    20. # 然后重启tomcat服务
    21. ~]# bin/shutdown.sh
    22. ~]# bin/startup.sh
    23. ~]# curl -k https://www.a.com:8443
    24. tomcat-A~~~
    25. ~]# curl -k https://www.b.com:8443
    26. tomcat-B~~~
  • 相关阅读:
    bfs广度优先遍历
    The Steps to prepare the Remote Device and necessary packages for Deep Learning
    【必知 - 软件版本号如何定义及使用】
    HiveSQL中last_value函数的应用
    【web-攻击应用程序框架】(12.2)共享主机与服务提供商:攻击、保障
    mongodb简单部署
    Kotlin 开发Android app(二):Kotlin 的基础数据类型
    新研一暑假计划
    Python函数和代码复用
    部署java程序的服务器cpu过高如何排查和解决
  • 原文地址:https://blog.csdn.net/kali_yao/article/details/127502264