Tomcat-集群部署实战

发布于 29 天前  41 次阅读


一、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 &quot;%r&quot; %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 &quot;%r&quot; %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 &quot;%r&quot; %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/
小棱
最后更新于 2024-12-25