目录
一、Tomcat基础功能
1、自动解压war包
Tomcat所用到的打包格式
.war | WebApp打包,类zip格式文件,通常包括一个应用的所有资源,比如 jsp、html、配置文件等 |
---|---|
.jar | EJB类文件的打包压缩类zip格式文件,包括很多的class文件, 网景公司发明 |
.rar | 资源适配器类打包文件,目前已不常用 |
.ear | 企业级WebApp打包,目前已不常用 |
传统应用开发测试后,通常打包为war格式,这种文件部署到Tomcat的webapps目录下,并默认会自动
在配置文件中默认设置,当接受到请求后,会匹配符合要求的Host,在配置文件中的Host只有一个,且规定了自动解压war包
操作:
(1)切换到需要打包的目录,然后新建两个网页文件并写入内容
[root@localhost ~]#mkdir /mnt/test
[root@localhost ~]#cd /mnt/test
[root@localhost app1.2]#vim test.html
<h1> test </h1>
[root@localhost app1.2]#vim test.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<! DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>welcome</title>
</head>
<body>
(2)打包成 war 包,并拷贝到网页根目录,之后不必手动解压,会自动解压
[root@localhost mnt]#jar cvf /mnt/app1.2.war *
[root@localhost mnt]#cp app1.2.war /usr/local/tomcat/webapps/
[root@localhost mnt]#ll /usr/local/tomcat/webapps/
(3)客户端浏览器测试访问
客户端浏览器:
http://172.16.12.10:8080/test/test.html
http://172.16.12.10:8080/test/test.jsp
注:
如果需要下线的话,就得同时删除 test 和 test.war 包,如果只删除 test ,那么会重启Tomcat服务会再次生成
2、Tomcat工具界面
2.1 Server Status (服务器状态)
这个页面提供了对部署在Tomcat服务器上的应用程序的管理功能,包括启动、停止、重新加载应用程序,查看应用程序的会话和JVM信息等
可以通过浏览器访问来进行查看
但点击“Server Status”,却发现被拒绝访问
只有tomcat服务器本机访问 127.0.0.1:8080,再点击“Server Status”,输入用户名和密码后,才能看到状态页,这是由于tomcat默认的配置,只允许本机访问127.0.0.1:8080/manager/statu
2.1.1 本地登录状态页
相关指令详解:
#这些为注释的信息。它定义了Tomcat服务器中的角色(roles)和用户(users),以及这些
#用户所归属的角色。(角色的含义相当于用户组)
<role rolename="tomcat"/>
#定义了一个名为 "tomcat" 的角色,这个角色可以对应于Tomcat服务器预定义的一些权限,比如
#访问管理界面或部署应用等。
<role rolename="role1"/>
#定义了一个名为 "role1" 的自定义角色,可以根据实际需求赋予特定权限。
<user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
#定义了一个用户名为 "tomcat" 的用户,并设置了初始密码(这里需要在实际使用时替换为强密码)
#该用户归属于 "tomcat" 角色,因此拥有与该角色关联的所有权限。
<user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
#定义了一个用户名为 "both" 的用户,同样设置了初始密码。这个用户同时属于 "tomcat"
#和 "role1" 两个角色,因此拥有这两个角色合并后的所有权限。
现在配置tomcat本机查看状态页的用户名和密码
[root@localhost tomcat]#pwd
/usr/local/tomcat
[root@localhost tomcat]#vim conf/tomcat-users.xml
<role rolename="manager-gui"/>
<user username="tomcat" password="123" roles="manager-gui"/>
拥有用户名和密码后,tomcat服务器本地可登录查看状态页
2.1.2 远程登录状态页
现在想要使用远端登录状态页,还需要去修改manager/META-INF/context.xml文件,去允许远端的IP地址能够访问
[root@localhost tomcat]#pwd
/usr/local/tomcat
[root@localhost tomcat]#vim webapps/manager/META-INF/context.xml
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|172\.\d+\.\d+\.\d+" />
[root@localhost tomcat]#systemctl restart tomcat.service
客户端测试:
注:
由于状态页比较重要,在设置登录权限时需要注意哪些地址可以访问,一般不建议开启远程登录
2.2 Manager App (管理应用程序)
这个界面提供了对部署在Tomcat服务器上的应用程序的管理功能。您可以在这里部署新的应用程序、重新加载已部署的应用程序、启动或停止应用程序、删除应用,以及查看应用程序的会话信息
通过Manager App,管理员可以执行以下操作:
- 部署应用:上传WAR文件到Tomcat服务器,并部署为新的Web应用程序
- 重新加载应用:无需停止整个服务器或卸载再部署,即可更新已部署应用的内容
- 启动和停止应用:控制单个Web应用的启动与停止状态
- 删除应用:从Tomcat服务器中移除已经部署的Web应用程序
- 查看应用列表和状态:列出所有部署在Tomcat服务器上的Web应用程序及其当前运行状态(如是否正在运行、部署路径等信息)
2.3 Host Manager (主机管理器)
这个界面允许您管理Tomcat服务器上的虚拟主机。您可以在这里添加、删除和管理虚拟主机,以及设置虚拟主机的属性和配置
允许远程登录主机管理器:
[root@localhost tomcat]#pwd
/usr/local/tomcat
[root@localhost tomcat]#vim conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="123" roles="manager-gui,admin-gui"/>
[root@localhost tomcat]#systemctl restart tomcat
现在想要使用远端登录状态页,仍需要去修改host-manager/META-INF/context.xml文件,去允许远端的IP地址能够访问
客户端测试:
3、Context 配置
位于tomcat/conf/context.xml
Context配置文件作用:
-
路径映射:将url映射至指定路径,而非使用appBase下的物理目录,实现虚拟目录功能
-
应用独立配置,例如单独配置应用日志、单独配置应用访问控制
#映射指定路径
<Context path="/test" docBase="/data/test" reloadable="true" />
#映射站点的根目录
<Context path="/" docBase="/data/website" reloadable="true" />
#还可以添加日志等独立的配置
<Context path="/test" docBase="/data/test" reloadable="true" >
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_test_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Context>
注:
- path:指的是访问的URL路径,如果path与appBase下面的子目录同名,context的docBase路径优先更高
- docBase:可以是磁盘文件的绝对路径,也可以是相对路径(相对于Host的appBase)
- reloadable:true表示如果WEB-INF/classes或META-INF/lib目录下.class文件有改动,就会将WEB应用重新加载。生产环境中,建议使用false来禁用
二、配置虚拟主机
[root@localhost tomcat]#pwd
/usr/local/tomcat
[root@localhost tomcat]#vim conf/server.xml
</Host>
<Host name="www.a.com" appBase="/mnt/a"
unpackWARs="true" autoDeploy="true">
</Host>
<Host name="www.b.com" appBase="/mnt/b"
unpackWARs="true" autoDeploy="true">
</Host>
<Host name="www.c.com" appBase="/mnt/c"
unpackWARs="true" autoDeploy="true">
</Host>
[root@localhost tomcat]#systemctl restart tomcat.service
[root@localhost ~]#mkdir -p /mnt/{a..c}/ROOT
[root@localhost ~]#echo "welcome to www.a.com" > /mnt/a//ROOT/index.html
[root@localhost ~]#echo "welcome to www.b.com" > /mnt/b//ROOT/index.html
[root@localhost ~]#echo "welcome to www.c.com" > /mnt/c//ROOT/index.html
客户端测试:
[root@localhost ~]#vim /etc/hosts
172.16.12.10 www.a.com www.b.com www.c.com
三、搭建 JPress 博客
1、Tomcat操作
(1)首先需要安装Tomcat,这里参考https://blog.csdn.net/m0_71815887/article/details/136382688?spm=1001.2014.3001.5502
(2)事先准备JPress包,并拷贝到规定Tomcat应用程序目录
[root@localhost ~]#cd /opt
[root@localhost opt]#cp jpress-v3.2.1.war /usr/local/tomcat/webapps/
[root@localhost webapps]#ln -s jpress-v3.2.1 jpress
2、mysql操作
(1)安装mysql数据库并启动
首先系统yum仓库的版本不够新,需要重新替换yum仓库,并安装mysql
[root@localhost ~]#cat >/etc/yum.repos.d/mysql.repo <<EOF
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/
enabled=1
gpgcheck=0
EOF
[root@localhost ~]#yum install -y mysql-community-server
[root@localhost ~]#systemctl start mysqld
(3) 修改数据库密码
yum安装的mysql是有初始密码的,现在需要修改这个初始密码
[root@localhost ~]#mysql -uroot -p
#使用grep命令,过滤出错误日志中的初始密码
[root@localhost ~]#grep password /var/log/mysqld.log
[root@localhost ~]#mysql -uroot -p"XkVKYU_08ikS"
set global validate_password_policy=0;
set global validate_password_length=1;
#修改密码策略
alter user root@'localhost' identified by 'abc123';
#重新设定密码
注:
validate_password_policy:这个参数用于指定密码验证策略的严格程度。其可选值包括0、1和2,默认值根据MySQL版本的不同可能会有所变化。值的含义如下:
- 0:只检查密码长度。
- 1(默认):检查密码长度以及字符种类(数字、小写字母、大写字母和特殊字符)。
- 2:最严格的策略,除了长度和字符种类外,还增加了其他复杂度要求,例如禁止使用常见密码。
validate_password_length:设置全局密码最小长度
(4)建立数据库用户并授予权限
[root@localhost webapps]#mysql -uroot -p"abc123"
CREATE DATABASE blog;
GRANT all ON blog.* TO 'bloguser'@'%' IDENTIFIED BY 'admin123';
GRANT all ON blog.* TO 'bloguser'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;
3、浏览器访问安装
浏览器访问:
http://172.16.12.10:8080/jpress/install