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开发环境
-
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
-
#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
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 自动部署
- 日志信息
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
2.9 Tomcat 日志格式
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 "%r" %s %b %D "%{Referer}i" "%{User-Agent}i"" />
</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 "%r" %s %b %D "%{Referer}i" "%{User-Agent}i"" />
</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 "%r" %s %b %D "%{Referer}i" "%{User-Agent}i"" />
</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 "%r" %s %b %D "%{Referer}i" "%{User-Agent}i"" />
</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 "%r" %s %b %D "%{Referer}i" "%{User-Agent}i"" />
</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
测试
4) 部署 jpress应用

浙公网安备 33010602011771号