一、Tomcat基本介绍
环境准备
- JVM介绍
- Java业务都是运行在java虚拟机上,java虚拟机简称JVM( java virtual machine)
- 虚拟机是通过软件模拟出具有完整硬件系统的功能
为什么Java需要JVM虚拟机
早期C语言不支持跨平台,如果C语言想要在Windows Linux Mac上运行,需要进行分别编译,那么在
Linux上有很多优秀的软件,如果需要在Windows上使用需要重新编译,移植性差
而Java则不同,Java是可以跨平台,只需要将源码进行一次编译,能够在不同的操作系统运行
JAVA是如何做到的?
它只需要在Windwos Linux系统上运行一个jvm,这样我们能将Java编译好的war包在Windows和
Linux平台运行起来,无需我们重复编译。而JVM是由jre提供
JAVA环境JRE和JDK的区别
jre是java的运行环境,包含jvm
jdk是java的开发环境,会包含java的运行环境jre
如果说单纯的运行java代码,只需要jre足够,但如果需要提供开发环境以及运行环境则需要JDK
Tomcat
Tomcat和Nginx类似,都是WEB服务器软件 只不过Tomcat是基于JAVA开发的WEB服务,主要解析
JAVA代码
Nginx仅支持静态资源解析,而Tomcat支持解析Java开发的WEB应用,还支持解析静态资源(效率不
高)
Nginx适合做前端负载均衡,Tomcat适合做后端应用服务处理
通常情况企业会使用Nginx+Tomcat结合,Nginx处理静态资源,Tomcat处理动态资源
二、安装jdk
yum直接安装
yum -y install java
rpm方式安装
[root@web01 ~]#rpm -i jdk-8u181-linux-x64.rpm
查看是否安装成功
[root@web01 ~]#rpm -qa|grep jdk
jdk1.8-1.8.0_181-fcs.x86_64
三、安装Tomcat
Tomcat官网: https://tomcat.apache.org/
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.98/bin/apache-tomcat-9.0.98.tar.gz
[root@web01 ~]#mkdir /soft
[root@web01 ~]#tar xf apache-tomcat-9.0.98.tar.gz -C /soft/
[root@web01 ~]#ln -s /soft/apache-tomcat-9.0.98/ /soft/tomcat
[root@web01 ~]#/soft/tomcat/bin/startup.sh #启动
[root@web01 ~]#/soft/tomcat/bin/shutdown.sh #停止
四、配置systemc方式启动
1.复制systemctl cat nginx配置文件
2.编辑/usr/lib/systemd/system/tomcat.service 配置文件
[root@web01 ~]#vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/soft/tomcat/bin/startup.sh
ExecStop=/soft/tomcat/bin/shutdown.sh
ExecRetart=/soft/tomcat/bin/shutdown.sh && sleep2 && /soft/tomcat/bin/startup.sh
[Install]
WantedBy=multi-user.target
[root@web01 ~]#systemctl daemon-reload
[root@web01 ~]#systemctl enable tomcat
[root@web01 ~]#systemctl start tomcat
[root@web01 ~]#netstat -lnutp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 58359/php-fpm: mast
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 67974/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 960/sshd: /usr/sbin
tcp6 0 0 :::8080 :::* LISTEN 70055/java
tcp6 0 0 :::22 :::* LISTEN 960/sshd: /usr/sbin
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 70055/java
udp 0 0 127.0.0.1:323 0.0.0.0:* 628/chronyd
udp6 0 0 ::1:323
五、配置文件
tomcat软件目录结构:
bin ---主要包含启动和关闭tomcat的脚本(启停java脚本依赖jar包文件)
conf ---tomcat配置文件的目录(站点配置:server.xml)
lib ---tomcat运行时需要加载的jar包
logs ---tomcat日志存放位置
temp ---tomcat临时存放文件路径
webapps ---tomcat默认站点目录
work ---tomcat运行时产生的缓存文件
[root@web01 /soft/tomcat/conf]#vim server.xml
<Host name="www.zrlog.com" appBase="/code/zrlog"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="diy_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
[root@web01 ]# mkdir /code/zrlog/ROOT -p
[root@web01 /code/zrlog/ROOT]#echo tomcat....... > index.html
hosts解析
http://www.zrlog.com:8080/index.html
Tomcat的location写法
使用的context语法
<Host name="www.zrlog.com" appBase="/code/zrlog"
unpackWARs="true" autoDeploy="true">
<!--如果用户访问www.zrlog.com/tt 则查找/code/tt下的资源
<Context docBase="/code/tt" payh="/tt" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="diy_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
六、安装zrlog
1.修改配置文件
[root@web01 /soft/tomcat/conf]#vim /soft/tomcat/conf/server.xml
<Host name="www.zrlog.com" appBase="/code/zrlog"
unpackWARs="true" autoDeploy="true">
修改域名和代码目录
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="zrlog_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
自定义日志格式
%a-远程IP地址
%A-本地IP地址
%b-发送的字节数,不包括HTTP头,或“-”如果没有发送字节
%B-发送的字节数,不包括HTTP头
%h-远程主机名
%H-请求协议
%|(小写的L)- 远程逻辑从identd的用户名(总是返回'-
%m-请求方法
%p-本地端口
%q-查询字符串(在前面加上一个如果它存在,否则是一个空字符串
%r-第一行的要求
%s-响应的HTTP状态代码
%S-用户会话ID
%t-日期和时间,在通用日志格式
%u-远程用户身份验证
%U-请求的URL路径
%v-本地服务器名
%D-处理请求的时间(以童秒为单位)
%T-处理请求的时间(以秒为单位
%6I(大写的i)当前请求的线程名称
2.创建代码目录
[root@web01 ~]#mkdir /code/zrlog
#上传代码
zrlog官网: https://zrlog.com/
#上传代码后修改名称为ROOT.war 自动生成ROOT目录
[root@web01 /code/zrlog]#ll
total 10980
drwxr-x--- 9 root root 126 Dec 20 21:31 ROOT
-rw-r--r-- 1 root root 11243048 Aug 19 20:58 ROOT.war
3.访问zrlog
访问 http://www.zrlog.com:8080/
Comments NOTHING