tomcat 从入门到入坑(一)

1. 预报姿势

  • web服务器: lnmt (nginx+java)

    • 中间件:nginx+动态

    • 数据库中间件: redis/读写分离MyCAT.....

  • tomcat 处理java程序代码

  • tomcat ☑

  • resin

    • JBoss
  • weblogic (Oracle,配合oracle数据库,甲骨文)

    • 其他。。。。

2.tomcat- 服务

2.1 jre-jdk-jvm

  • 正常书写的程序代码,只能在某个平台使用

    • linux--->windows

    • window QQ.exe 上传 ----> linux

  • java 只要书写一份java代码,把代码放在 java虚拟机中运行 . 只要java虚拟机可以运行,java代码就可以正常运行.

  • jvm java virtual machine java虚拟机

  • Write Once ,Run Anywhere. 一次书写(编译),处处运行****.

  • java jvm 解决代码可移植性问题(跨平台)

  • jre java runtime enviroment java运行环境(提供jvm)

  • jdk java delelopment kit java开发环境(很多内容) = jre + 额外java工具

  • jvm ,jre,jdk

  • JVM java virtual machine java虚拟机

    • 1份代码 想在不同的系统使用

    • java 程序代码 运行在java虚拟机中 只要系统能有java环境(java虚拟机) 就可以运行代码

    • 1份代码 处处使用问题 代码可移植性

    • 对于 java虚拟机 一般关注 内存使用情况

  • JDK

    • java runtime environment java运行环境
  • JRE

    • java development kit java开发环境

      image-20210826202640386

2.2 环境准备 与 部署****Tomcat

web03 jdk tomcat 10.0.0.9 172.16.1.9

  • jdk tomcat版本选择

  • jdk 版本 一般根据开发使用的版本为准 这里我们选择:1.8.0

    • jdk(Oracle官方) 最新版jdk下载地址 jdk各种版本旧版本下载地址

      • rpm包安装

      • 二进制包(软件绿色版,解压既用)

      • 源码 (编译安装)

    • openJDK Linux

      • yum yum list |grep -i openjdk
  • tomcat 9.0 8.5 8.0 7.x

    • apache-tomcat

      image-20210826203052078

#web03 

##jdk 

#各种版本:https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/ 
###01 部署 jdk 
[root@oldboy-tomcat ~]# tar xf /app/tools/jdk-8u241-linux-x64.tar.gz -C /app/ 
[root@oldboy-tomcat ~]# ln -s /app/jdk1.8.0_241/ /app/jdk 
[root@oldboy-tomcat ~]# ll /app 
total 0 
lrwxrwxrwx 1 root root 18 Feb 7 10:26 jdk -> /app/jdk1.8.0_241/ 
drwxr-xr-x 7 10143 10143 245 Dec 11 18:39 jdk1.8.0_241 
drwxr-xr-x 2 root root 75 Feb 7 10:13 tools 
####02 java jdk 环境变量 
cat >>/etc/profile<<'EOF' 
export JAVA_HOME=/app/jdk 
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH 
export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar 
export TOMCAT_HOME=/app/tomcat 
EOF 
#说明部分 

##export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH #配置命令路径 
##export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar ##export TOMCAT_HOME=/app/tomcat #tomcat 目录
[root@oldboy-tomcat ~]# . /etc/profile #或者source /etc/profile

####03.检查 jdk是否部署完成 
[root@oldboy-tomcat ~]# java -version 
java version "1.8.0_241" 
Java(TM) SE Runtime Environment (build 1.8.0_241-b07) 
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode) 

#####04.部署 tomcat 
[root@oldboy-tomcat ~]# tar xf /app/tools/apache-tomcat-8.5.50.tar.gz -C /app/ [root@oldboy-tomcat ~]# ln -s /app/apache-tomcat-8.5.50/ /app/tomcat 

####05 检查 jdk+tomcat 
[root@oldboy-tomcat ~]# /app/tomcat/bin/version.sh 
Using CATALINA_BASE: /app/tomcat 
Using CATALINA_HOME: /app/tomcat 
Using CATALINA_TMPDIR: /app/tomcat/temp Using JRE_HOME: /app/jdk 
Using CLASSPATH: /app/tomcat/bin/bootstrap.jar:/app/tomcat/bin/tomcat-juli.jar 
Server version: Apache Tomcat/8.5.50 
Server built: Dec 7 2019 19:19:46 UTC Server number: 8.5.50.0 OS Name: Linux 
OS Version: 4.18.0-80.11.2.el8_0.x86_64 
Architecture: amd64 
JVM Version: 1.8.0_241-b07 
JVM Vendor: Oracle Corporation

2.3 Tomcat****服务管理

2.3.1 tomcat 相关命令

  • tomcat 管理命令

    bin目录 含义 主要命令
    /app/tomcat/bin/ tomcat管理命令目录 startup.sh 启动****tomcat
    shutdown.sh 关闭****tomcat
    version.sh 部署完成后 检查 jdk 与tomcat
    catalina.sh 卡特琳娜#tomcat核心脚本 startup shutdown 都会调用这个脚本
[root@web01 tools]# #/application/tomcat/bin/startup.sh 
[root@web01 tools]# #/application/tomcat/bin/catalina.sh start 
[root@web01 tools]# /application/tomcat/bin/startup.sh 
Using CATALINA_BASE: /application/tomcat 
Using CATALINA_HOME: /application/tomcat 
Using CATALINA_TMPDIR: /application/tomcat/temp 
Using JRE_HOME: /application/jdk 
Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar 
Tomcat started. 

[root@web01 tools]# ss -lntup|grep tomcat 
[root@web01 tools]# ss -lntup|grep java 
tcp LISTEN 0 100 :::8009 :::* users: 
(("java",pid=58497,fd=51)) 
tcp LISTEN 0 100 :::8080 :::* users: 
(("java",pid=58497,fd=46)) 
tcp LISTEN 0 1 ::ffff:127.0.0.1:8005 :::* users: 
(("java",pid=58497,fd=66)) 
[root@web03 jpress]# ps -ef |grep java
root       3956      1  0 20:00 ?        00:00:15
/app/jdk/bin/java 
-Djava.util.logging.config.file=/app/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 /app/tomcat/bin/bootstrap.jar:/app/tomcat/bin/tomcat
-juli.jar 
-Dcatalina.base=/app/tomcat 
-Dcatalina.home=/app/tomcat 
-Djava.io.tmpdir=/app/tomcat/temp org.apache.catalina.startup.Bootstrap 
start


访问:10.0.0.9:8080

image-20210826204721985

2.3.2 Tomcat****目录结构

[root@web01 tomcat]# ll 
total 92 
drwxr-xr-x 2 root root 4096 Dec 16 12:01 bin 
drwxr-xr-x 3 root root 198 Dec 16 12:08 conf 
drwxr-xr-x 2 root root 4096 Dec 16 12:01 lib #库文件 tomcat插件 
drwxr-xr-x 2 root root 197 Dec 16 12:08 logs 
-rw-r--r-- 1 root root 1444 Sep 28 2015 NOTICE 
-rw-r--r-- 1 root root 6741 Sep 28 2015 RELEASE-NOTES 
-rw-r--r-- 1 root root 16204 Sep 28 2015 RUNNING.txt 
drwxr-xr-x 2 root root 30 Dec 16 12:01 temp 
drwxr-xr-x 7 root root 81 Sep 28 2015 webapps 
drwxr-xr-x 3 root root 22 Dec 16 12:08 work 

start目录 含义

  • bin

    • startup.sh

    • shutdown.sh

    • catalina.sh

  • conf/

    • tomcat配置文件
  • server.xml #nginx.conf 主配置文件

    • web.xml #补充 额外功能

    • tomcat-user.xml #tomcat****管理端配置文件 用户名 和 密码

  • logs

    • 日志

    • catalina.out #tomcat最全日志 查看 error startup 启动的时间 catalina.out切割之后内容不变,未来需要logroate切 割

    • catalina.2019-12-16.log #catalina.out的每天的切割日志 ,

    • localhost_access_log.2019-12-16.txt #tomcat acccess.log 访问日志

  • webapps

    • tomcat站点目录 nginx html war包

2.4 小试牛刀部署简单Java页面

#应用war包 部署到 /app/tomcat/webapps/ 
\#tomcat 自动解压 
\#tomcat 自动部署

image-20210826205200727

  • 日志信息

image-20210826205225114

2.5 Tomcat管理端

  • tomcat 9.0

    • 注意:tomcat 8.5 对管理端限制更严格

    • 要配置tomcat-user.xml之外

    • 还限制 只能在本地使用127.0.0.1 访问管理的

    • 从tomcat8.5开始 管理端默认只能通过 本地使用 127.0.0.1 访问 (类似于nginx all 127.0.0.1 ; deny all; )

    • 默认情况下,只能从与Tomcat运行在同一台计算机上的浏览器访问管理器。如果要修改此限制,则需要编辑管理器的context.xml文件。

## 01 配置 tomcat 管理端 
[root@static01 tomcat]# cat conf/tomcat-users.xml 
<?xml version="1.0" encoding="UTF-8"?> 
<tomcat-users xmlns="http://tomcat.apache.org/xml" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" 
version="1.0"> 
<role rolename="manager-gui"/> 
<role rolename="admin-gui"/> 
<user username="tomcat" password="1" roles="manager-gui,admin-gui"/> 
</tomcat-users>

## 02 重启tomcat 
## 03 命令行测试 
curl -u tomcat:1 http://127.0.0.1:8080/manager/status 
\#注意:使用127.0.0.1 
\## 04 开启tomcat默认的限制 
/app/tomcat/webapps/host-manager/META-INF/context.xml 
/app/tomcat/webapps/manager/META-INF/context.xml[root@static01 tomcat]# sed -i.bak 's#127#\\d+#g' /app/tomcat/webapps/host-manager/META-INF/context.xml 
/app/tomcat/webapps/manager/META-INF/context.xml 
[root@static01 tomcat]# find -name "context.xml" |xargs grep allow 
./webapps/host-manager/META-INF/context.xml: allow="\d+\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> 
./webapps/manager/META-INF/context.xml: allow="\d+\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />**2.6 tomcat****日志与进程信息**

2.6 tomcat日志与进程信息

2.6.1进程信息

[root@web03 jpress]# ps -ef |grep java
root       3956      1  0 20:00 ?        00:00:15 /app/jdk/bin/java -Djava.util.logging.config.file=/app/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 /app/tomcat/bin/bootstrap.jar:/app/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/app/tomcat -Dcatalina.home=/app/tomcat -Djava.io.tmpdir=/app/tomcat/temp org.apache.catalina.startup.Bootstrap start
root       3984   3956  0 20:01 ?        00:00:19 /app/jdk1.8.0_60/jre/bin/java -Xms8m -Xmx32m -Dfile.encoding=UTF-8 -Duser.dir=/data/blog/zrlog/WEB-INF/plugins -jar /data/blog/zrlog/WEB-INF/plugins/plugin-core.jar 23448 43448 /data/blog/zrlog/WEB-INF/db.properties /data/blog/zrlog/WEB-INF/plugins/jars 53448 /data/blog/zrlog 2.1.11
root       4130   2041  0 20:45 pts/1    00:00:00 grep --color=auto java
[root@web03 jpress]# netstat -lntup |grep java 
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      3956/java           
tcp6       0      0 127.0.0.1:53448         :::*                    LISTEN      3984/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      3956/java           
tcp6       0      0 127.0.0.1:43448         :::*                    LISTEN      3984/java           
tcp6       0      0 127.0.0.1:23448         :::*                    LISTEN      3984/java 

2.6.2 Tomcat日志

  • conf/logging.properties 日志的配置文件

  • catalina.out 🌟🌟🌟🌟🌟 持续增加

  • catalina-年-月-日.log 切割日志

  • xxxxxxaccess.log 🌟🌟🌟🌟🌟 访问日志

  • host-manager.2021-08-26.log 管理端日志

  • localhost.2021-08-26.log 管理端日志

  • manager.2021-08-26.log 管理端日志

  • catalina.out 主日志

###catalina.out 
\# error 错误 
\# failed 
\# exception 异常 
\# startup 或 finished 启动所需的时间 
\# deploy 
07-Feb-2020 12:03:16.039 INFO [main] org.apache.catalina.core.StandardServer.await A valid shutdown command 
was received via the shutdown port. Stopping the Server instance. 
07-Feb-2020 12:03:16.039 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler 
["http-nio-8080"] 
07-Feb-2020 12:03:16.046 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler 
["ajp-nio-8009"] 
07-Feb-2020 12:03:16.051 INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service 
[Catalina] 
07-Feb-2020 12:03:16.093 INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler 
["http-nio-8080"] 
07-Feb-2020 12:03:16.098 INFO [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler 
["ajp-nio-8009"] 
07-Feb-2020 12:03:16.100 INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler 
["http-nio-8080"] 
07-Feb-2020 12:03:16.101 INFO [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler 
["ajp-nio-8009"] 
  • 访问日志
223.104.2.165 - - [07/Feb/2020:12:10:00 +0800] "GET /tomcat.css HTTP/1.1" 200 5581 
223.104.2.165 - - [07/Feb/2020:12:10:00 +0800] "GET /tomcat.png HTTP/1.1" 200 5103 
223.104.2.165 - - [07/Feb/2020:12:10:00 +0800] "GET /bg-nav.png HTTP/1.1" 200 1401 
223.104.2.165 - - [07/Feb/2020:12:10:00 +0800] "GET /asf-logo-wide.svg HTTP/1.1" 200 27235 
223.104.2.165 - - [07/Feb/2020:12:10:00 +0800] "GET /bg-upper.png HTTP/1.1" 200 3103 
223.104.2.165 - - [07/Feb/2020:12:10:00 +0800] "GET /bg-middle.png HTTP/1.1" 200 1918 
223.104.2.165 - - [07/Feb/2020:12:10:00 +0800] "GET /bg-button.png HTTP/1.1" 200 713 
223.104.2.165 - - [07/Feb/2020:12:10:00 +0800] "GET /favicon.ico HTTP/1.1" 200 21630 
223.104.2.165 - - [07/Feb/2020:12:10:06 +0800] "GET / HTTP/1.1" 200 11215 
223.104.2.165 - - [07/Feb/2020:12:10:06 +0800] "GET /tomcat.css HTTP/1.1" 200 5581 
223.104.2.165 - - [07/Feb/2020:12:10:06 +0800] "GET /tomcat.png HTTP/1.1" 200 5103
  • catalina.out在被切割后 内容不会被清空
  • catalina.out 和 catalina.日期.log

2.7 Tomcat通过SystemCtl管理 🌟

  • 各种服务通过yum、rpm安装自动配置systemctl

  • 通过编译安装或二进制安装,手动书写systemctl配置,达到管理服务目标。

#找个例子对比书写 sshd nginx

[root@static01 tomcat]# systemctl cat sshd

# /usr/lib/systemd/system/sshd.service 
[Unit] 
Description=OpenSSH server daemon #描述 注释 
Documentation=man:sshd(8) man:sshd_config(5) 
After=network.target sshd-keygen.service #依赖 在xxxx服务之后运行。 
Wants=sshd-keygen.service 
[Service] 
Type=notify #服务类型 
EnvironmentFile=/etc/sysconfig/sshd 
ExecStart=/usr/sbin/sshd -D $OPTIONS #启动sshd 服务的命令 
ExecReload=/bin/kill -HUP $MAINPID #重新加载sshd配置文件 优雅的重启 
KillMode=process #指定如何关闭 
Restart=on-failure 
RestartSec=42s 
[Install] 
WantedBy=multi-user.target 

[root@static01 tomcat]# systemctl cat nginx

# /usr/lib/systemd/system/nginx.service 
[Unit] 
Description=The nginx HTTP and reverse proxy server 
After=network-online.target remote-fs.target nss-lookup.target #依赖 
Wants=network-online.target 
[Service] 
Type=forking #服务的另一种模式**systemctl** **配置文件格式**
[Unit] 
配置说明信息和依赖信息
**[Service]** 🌟🌟🌟🌟🌟 
这个服务端开启/关闭/重启的命令
[Install] 
指定运行级别 target

管理tomcat

PIDFile=/run/nginx.pid 

ExecStartPre=/usr/bin/rm -f /run/nginx.pid #pre xxx之前 启动nginx服务之前 

ExecStartPre=/usr/sbin/nginx -t # 检查语法 

ExecStart=/usr/sbin/nginx #启动的命令 systemctl start nginx ---> 

ExecReload=/usr/sbin/nginx -s reload #重启 重载 

\#ExecStart ExecReload/ExecRestart ExecStop 

KillSignal=SIGQUIT 

TimeoutStopSec=5 

KillMode=process 

PrivateTmp=true 

[Install] 

WantedBy=multi-user.target 

\##补充01 

\#Type 

\## 对于常见服务推荐使用forking 模式即可。 。 

\## oneshot 适用于一次的服务 

\## 补充02 

EnvironmentFile=/etc/sysconfig/sshd #服务使用的环境变量的配置文件。 

[root@static01 tomcat]# cat /etc/sysconfig/tomcat 

\#变量=内容 

JAVA_HOME=/app/jdk 

PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:bin/:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin 

CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar 
[root@static01 tomcat]# cat /usr/lib/systemd/system/tomcat.service 

[Unit] 

Description=Tomcat Server Manage 

After=network.target remote-fs.target 

[Service] 

Type=forking 

EnvironmentFile=/etc/sysconfig/tomcat 

ExecStart=/app/tomcat/bin/startup.sh 

ExecReload="/app/tomcat/bin/shutdown.sh && sleep 2 && /app/tomcat/bin/startup.sh" 

ExecStop=/app/tomcat/bin/shutdown.sh 

[Install] 

WantedBy=multi-user.target**Tomcat****配置文件说明**
端口部分 

8005 shutdown端口,关闭tomcat使用. 

默认只能127.0.0.1访问

8080 

web页面端口http

8009 

ajp协议使用的端口(用于与apache连接使用)

2.8 Tomcat****配置文件

tomcat 8.5 以下有三个端口

tomcat 8.5 以上有两个端口

[root@web03 logs]# netstat -lntup|grep java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      3956/java                     
tcp6       0      0 :::8080   

image-20210826211846181

image-20210826211946113

image-20210826212004477

2.9 Tomcat 日志格式

image-20210826212052127

2.10 部署Tomcat多虚拟主机

1) 环境准备

虚拟主机,,,一个网站. www.oldboylinux.com img.oldboylinux.com live.oldboylinux.com

2) 配置与调试

#目标 
浏览器访问 img.etiantian.org 显示 img 内容 
浏览器访问 live.etiantian.org 显示 live 内容 
浏览器访问 其他 。。。。 显示localhost默认内容 

创建站点文件

mkdir -p /data/{live,img}/ROOT/ /var/log/tomcat 
echo live >/data/live/ROOT/index.jsp 
echo img > /data/img/ROOT/index.jsp  #tomcat访问的时候 uri小坑 
### 用户访问的域名如果包含路径(目录) tomcat会在站点目录下面匹配指定的目录然后匹配文件 

curl img.etiantian.org/oldboy/index.jsp --->站点目录下面的/oldboy/index.jsp 

\### 用户访问的url没有路径、目录 tomcat会在站点目录下面找ROOT/内容 进行匹配 

curl img.etiantian.org/index.jsp ---> 站点目录下面的/ROOT/index.jsp 

#tomcat虚拟主机

 [root@web03 conf]# cat server.xml    
     <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/log/tomcat/"
               prefix="localhost_access" suffix=".log"
               pattern="%h %l %u %t &quot;%r&quot; %s %b %D &quot;%{Referer}i&quot;  &quot;%{User-Agent}i&quot;" />
       
      </Host>
      <Host name="img.etiantian.org"  appBase="/data/img"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/log/tomcat/"
               prefix="img_access" suffix=".log"
               pattern="%h %l %u %t &quot;%r&quot; %s %b %D &quot;%{Referer}i&quot;  &quot;%{User-Agent}i&quot;" />
       
      </Host>
      <Host name="live.etiantian.org"  appBase="/data/live"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/log/tomcat/"
               prefix="live_access" suffix=".log"
               pattern="%h %l %u %t &quot;%r&quot; %s %b %D &quot;%{Referer}i&quot;  &quot;%{User-Agent}i&quot;" />
       
      </Host>
      <Host name="zrlog.etiantian.org"  appBase="/data/blog"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/log/tomcat/"
               prefix="zrlog_access" suffix=".log"
               pattern="%h %l %u %t &quot;%r&quot; %s %b %D &quot;%{Referer}i&quot;  &quot;%{User-Agent}i&quot;" />
       
      </Host>
      <Host name="jpress.etiantian.org"  appBase="/data/jpress"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/log/tomcat/"
               prefix="jpress_access" suffix=".log"
               pattern="%h %l %u %t &quot;%r&quot; %s %b %D &quot;%{Referer}i&quot;  &quot;%{User-Agent}i&quot;" />
       
      </Host>
    </Engine>
  </Service>
</Server>

#重启后检查结果

[root@web03 /app/tomcat]# ll /var/log/tomcat/

total 0 
-rw-r----- 1 root root 0 Aug 8 12:17 live_access.2021-08-08.log 
-rw-r----- 1 root root 0 Aug 8 12:17 localhost_access.2021-08-08.log 

#配置hosts解析

linux vim /etc/hosts 

10.0.0.9 live.oldboylinux.com 
windows : C:\Windows\System32\drivers\etc\hosts 

10.0.0.9 live.oldboylinux.com 

#测试 live站点

[root@web03 /app/tomcat]# mkdir /code/live/ROOT 

[root@web03 /app/tomcat]# echo live.oldboylinux.com web03 /code/live/ROOT/index.jsp 

live.oldboylinux.com web03 /code/live/ROOT/index.jsp 

[root@web03 /app/tomcat]# echo live.oldboylinux.com web03 > /code/live/ROOT/index.jsp 

[root@web03 /app/tomcat]# 

[root@web03 /app/tomcat]# curl live.oldboylinux.com:8080 

3) 重看-tomcat处理请求流程

Ჰ用户发出http请求报文: Host: 域名 /域名+端口

᳀用请求到达tomcat, tomcat,connector 端口是否存在,不存在就拒绝,存在就继续处理

᲼ tomcat继续根据用户的请求的域名匹配站点 用户请求的域名Host与Tomcat Host name进行匹配

Შ 🆗tomcat匹配成功,则让用户的请求到达这个站点的对应的站点目录 appBase指定的

Ფ⚠ tomcat匹配失败,则让用户的请求到达默认的站点进行处理.

2.11 Java应用部署方式

环境准备

web03 tomcat
db01 数据库

1) 部署应用方式

如果开发给你的是**war****包** ==则把war包放入到 tomcat webapps 自动解压 自动部署== 开发给你源代码---maven-->war包??
如果开发给你的是**jar****包** 相当于jar包里面已经集成了tomcat 
java -jar xxxx.jar 选项

2) jar包运行

3) java开源软件-war包

博客软件war包:

jpress java wordpress

#测试 默认站点

echo this is default virtual host server > /app/tomcat/webapps/ROOT/index.jsp 

[root@web03 /app/tomcat]# curl 10.0.0.9:8080 

this is default virtual host server 

[root@web03 /app/tomcat]# curl -H Host:lidao.oldboylinux.com 10.0.0.9:8080 

this is default virtual host server 

[root@web03 /app/tomcat]# 

\#jar运行演示 
java -jar dingding-sonar-1.0-SNAPSHOT.jar --server.port=8082**准备内容**  #测试

3) 部署应用****-zrlog

#01 tomcat 虚拟主机

<Host name="zrlog.etiantian.org" appBase="/data/blog/" 
unpackWARs="true" autoDeploy="true"> 
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/log/tomcat/" 
prefix="zrlog_access" suffix=".log" 
pattern="%h %l %u %t "%r" %s %b %D "%{Referer}i" "%{User- 
Agent}i"" /> 
</Host>

#02 数据库

yum install -y mariadb-server 
systemctl enable mariadb 
systemctl start mariadb 

#初始的配置

mysql_secure_installation 
Set root password? [Y/n] Y 
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] Y 
... Success! 
Disallow root login remotely? [Y/n] Y 
... Success! 
Remove test database and access to it? [Y/n] Y 
Reload privilege tables now? [Y/n] Y 
... Success! 
Thanks for using MariaDB! 
\#进入数据库 
\##查看数据库 
show databases; 
\##查看数据库用户信息 
select user,host from mysql.user; 
\##创建zrlog用的数据库 
MariaDB [(none)]> create database zrlog charset utf8; 
Query OK, 1 row affected (0.00 sec) 
MariaDB [(none)]> show databases; 
+--------------------+ 
| Database | 
+--------------------+ 
| information_schema | 
| mysql || performance_schema | 
| zrlog | 
+--------------------+ 
4 rows in set (0.00 sec) 
\##创建用户 admin 管理所有数据库 
grant all on *.* to zrlog@'localhost' identified by '1'; 
grant all on *.* to zrlog@'%' identified by '1'; 
\#03 .部署应用 
把代码复制到/code/zrlog 
自动解压,部署 

#04. 配置hosts解析

10.0.0.9 zrlog.oldboylinux.com

05: 接上面, web页面部署zrlog

06: zrlog 连接数据库07: 检查 数据库内容(了解) 与用户是上传内容(必会)

select * from zrlog.log ;

find /code/zrlog/ -type f -mmin -100

#部署应用后 tomcat的日志

[WARN] 2021-06-02 11:08:46,902 com.zrlog.web.config.ZrLogConfig configPlugin - Not found lock 
file(/app/apache-tomcat-8.5.66/webapps/zrlog/WEB-INF/install.lock), Please visit the 
http://yourHostName:port/zrlog/install start installation 
02-Jun-2021 11:08:47.203 INFO [localhost-startStop-2] org.apache.catalina.startup.HostConfig.deployWAR 
Deployment of web application archive [/app/apache-tomcat-8.5.66/webapps/zrlog.war] has finished in [2,682] 
ms

测试

image-20210826213235436

4) 部署 jpress应用

image-20210826213345671

posted @ 2021-08-26 21:39  feel-ll  阅读(190)  评论(0)    收藏  举报