Tomcat常见配置(基础功能、虚拟主机、搭建博客)

目录

一、Tomcat基础功能

1、自动解压war包

2、Tomcat工具界面

2.1 Server Status (服务器状态)

2.1.1 本地登录状态页

2.1.2 远程登录状态页

2.2 Manager App (管理应用程序)

2.3 Host Manager (主机管理器)

3、Context 配置

二、配置虚拟主机

三、搭建 JPress 博客

1、Tomcat操作

2、mysql操作

3、浏览器访问安装


一、Tomcat基础功能

1、自动解压war包

Tomcat所用到的打包格式

.warWebApp打包,类zip格式文件,通常包括一个应用的所有资源,比如 jsp、html、配置文件等
.jarEJB类文件的打包压缩类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 &quot;%r&quot; %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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/511370.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何处理微服务之间的通信和数据一致性?

✨✨祝屏幕前的兄弟姐妹们每天都有好运相伴左右&#xff0c;一定要天天开心哦&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; 目录 引言 一、微服务通信 1、同步通信&#xff1a;HTTP 1.1.同步通信示例代码&#xf…

【学习】torchvision.datasets.ImageFolder()

在分类任务中&#xff0c;数据集文件存储往往是如下形式&#xff1a; - train- class1- image1.jpg- image2.jpg...- class2- image1.jpg- image2.jpg......此时&#xff0c;我们想要获取图片和标签&#xff0c;标签即为文件名&#xff08;class1、class2…&#xff09; 可以使…

微软多兴趣召回:Octopus

Octopus: Comprehensive and Elastic User Representation for the Generation of Recommendation Candidates 背景&#xff1a; 多兴趣通道(channel)结构的多兴趣召回模型在兴趣通道数量上面存在两个问题 兴趣通道较少&#xff0c;不能充分学习到用户的多个兴趣。兴趣通道较…

学c++对Python有帮助吗?

学习C对Python编程确实有帮助&#xff0c;尽管这两种语言在许多方面有很大的不同。以下是学习C可能对Python编程产生帮助的几个方面&#xff1a; 理解底层概念&#xff1a;C是一种更接近硬件的编程语言&#xff0c;它要求程序员更深入地理解内存管理、指针、数据类型等底层概念…

【鸿蒙 HarmonyOS 4.0】应用状态:LocalStorage/AppStorage/PersistentStorage

一、介绍 如果要实现应用级的&#xff0c;或者多个页面的状态数据共享&#xff0c;就需要用到应用级别的状态管理的概念。 LocalStorage&#xff1a;页面级UI状态存储&#xff0c;通常用于UIAbility内、页面间的状态共享。AppStorage&#xff1a;特殊的单例LocalStorage对象&…

链路负载均衡之DNS透明代理

一、DNS透明代理 一般来说&#xff0c;企业的客户端上都只能配置一个运营商的DNS服务器地址&#xff0c;DNS服务器通常会将域名解析成自己所在ISP内的Web服务器地址&#xff0c;这将导致内网用户的上网流量都集中在一个ISP的链路上转发&#xff0c;最终可能会造成链路拥塞&…

java数据结构与算法刷题-----LeetCode637. 二叉树的层平均值

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 广度优先2. 深度优先 解题思路&#xff1a;时间复杂度O(n)&am…

计算机网络-典型网络组网架构

前面基本网络知识已经能够满足中小企业的需要了&#xff0c;今天来看下一些基本网络组网架构。 首先网络是分层架构&#xff0c;从接入层到汇聚层再到核心层&#xff0c;然后接入运营商出口。内部包括有线网络、无线网络&#xff0c;出口一般可以使用路由器或者防火墙进行安全防…

证明高维度神经网络模型是低纬度神经网络模型的加和

神经网络中矩阵乘法的分解与应用 启发标题&#xff1a;神经网络中矩阵乘法的分解与应用摘要&#xff1a;引言&#xff1a;方法&#xff1a;实验&#xff1a;结论&#xff1a;参考文献&#xff1a;附录1附录2实验数据 启发 理论上 更具矩阵乘法 A[p,mn]B[mn,q]C[p,q] Acat(A[:,…

Linux操作系统的vim常用命令和vim 键盘图

在vi编辑器的命令模式下&#xff0c;命令的组成格式是&#xff1a;nnc。其中&#xff0c;字符c是命令&#xff0c;nn是整数值&#xff0c;它表示该命令将重复执行nn次&#xff0c;如果不给出重复次数的nn值&#xff0c;则命令将只执行一次。例如&#xff0c;在命令模式下按j键表…

AutoSAR(基础入门篇)13.6-Mcal Adc配置(上)

目录 一、AdcGeneral 二、AdcSafety 三、AdcConfigSet 在之前的章节中,咱们在Port的配置中讲解了工具的初步使用与一些技巧;在Dio的配置中讲解了生成的代码的内容;在mcu的配置里讲解了外部一些 第三方简便工具的使用。这一次咱们配合ADC模块,就详细的讲讲每个配置项的作…

游戏引擎用什么语言开发上层应用

现在主流的游戏引擎包括&#xff1a; 1、Unity3D&#xff0c;C#语言&#xff0c;优点在于支持几乎所有平台 丹麦创立的一家公司&#xff0c;现已被微软收购。在中国市场占有率最高&#xff0c;也是社群很强大&#xff0c;一般解决方案也能在网上找到&#xff0c;教程丰富。物理…