学习b记 · 第二阶段
十二、Tomcat
Tomcat
Tomcat和Nginx类似,都是WEB服务器软件 只不过Tomcat是基于JAVA开发的WEB服务,主要解析JAVA代码
Nginx仅支持静态资源解析,而Tomcat支持解析Java开发的WEB应用,还支持解析静态资源(效率不高)
Nginx适合做前端负载均衡,Tomcat适合做后端应用服务处理
通常情况企业会使用Nginx+Tomcat结合,Nginx处理静态资源,Tomcat处理动态资源
安装Tomcat
1、下载
链接:https://pan.baidu.com/s/1ApY7tX704IDB1UL0b_j6mA?pwd=kxxw
提取码:kxxw
2、安装
[root@web01 ~]
[root@web01 ~]
[root@web01 ~]
[root@web01 ~]
[root@web01 ~]
[root@web01 ~]
[root@web01 ~]
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 6867/java
tcp6 0 0 :::8080 :::* LISTEN 6867/java
3、配置systemctl启动
cat >/usr/lib/systemd/system/tomcat.service<<'EOF'
[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
ExecRestart=/soft/tomcat/bin/shutdown.sh && sleep2 && /soft/tomcat/bin/startup.sh
[Install]
WantedBy=multi-user.target
EOF
4、设置开机启动
[root@web03 ~]
[root@web03 ~]
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /usr/lib/systemd/system/tomcat.service.
配置文件
tomcat软件目录结构:
bin ---主要包含启动和关闭tomcat的脚本(启停java脚本依赖jar包文件)
conf ---tomcat配置文件的目录(站点配置:server.xml)
lib ---tomcat运行时需要加载的jar包
logs ---tomcat日志存放位置
temp ---tomcat临时存放文件路径
webapps ---tomcat默认站点目录
work ---tomcat运行时产生的缓存文件
1、配置虚拟主机
cat tomcat/conf/server.xml
...
<Host name="diy.qxl.com"#域名 appBase="/code/tomcat/zrlog"#运行主目录,这里面可以直接运行war包移动进去自动解析成ROOT目录
unpackWARs="true" autoDeploy="true">
<Context docBase="/code/tt" path="/tt" reloadable="true" />
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"#这一部分是日志配置
prefix="zrlog_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
Tomcat自带的管理页面
管理功能
监控功能
1、所有的管理页面,都将权限赋予给了角色,而角色的名称是固定的: manager-gui admin-gui
2、需要添加一个用户,将用户捆绑至对应的角色,这样用户就可以访问到对应的页面
vim /soft/tomcat/conf/tomcat-users.xml
...
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="123456" roles="manager-gui,admin-gui"/>
</tomcat-users>
3、由于项目默认允许127.0.0.1访问,所以配置好了角色和用户也无法正常访问:
[root@web01 ROOT]
[root@web01 ROOT]
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="\d+\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
部署项目
1、添加虚拟主机
</Host>
<Host name="zrlog.qxl.com" appBase="/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" />
</Host>
2、下包
[root@web01 zrlog]
3、数据库
MariaDB [(none)]> create database zrlog charset utf8;
MariaDB [(none)]> grant all privileges on *.* to 'qxl'@'%' identified by '123456';
4、测试就完了
systemctl start tomcat
5、集群配置会话保持
tomcat-cluster-redis-session-manager.zip
1)解压zip包
[root@web01 ~]
2)拷贝jars到tomcat的/lib目录中
[root@web01 ~]
3)拷贝conf下的redis.properties文件,到tomcat的conf文件
[root@web01 ~]
4)将配置文件中连接redis地址修改为如下地址即可
[root@web01 ~]
redis.hosts=172.16.1.51:6379
5)添加如下两行至tomcat/conf/context.xml (添加在</Context> 上一行 )
[root@web01 ~]
<Valve className="tomcat.request.session.redis.SessionHandlerValve" />
<Manager className="tomcat.request.session.redis.SessionManager" />