Tomcat实现java博客项目、状态页及常见配置介绍

news2024/11/25 12:26:17

目录

一、自建博客

1. 项目背景

2. 操作示例

二、状态页 

1. 概述

2. server status 信息状态页

3. manager app 项目管理状态页

4. host manger 虚拟主机管理状态页 

三、常见配置

1. 端口8005/tcp安全配置管理

2. tomcat端口号

3. 虚拟主机设置

4. Context配置


一、自建博客

1. 项目背景

在当今互联网时代,博客已经成为人们分享知识、观点和经验的重要平台。Java作为一种广泛应用于企业级应用开发的编程语言,具有强大的生态系统和丰富的工具库,因此使用Java构建自己的博客平台是一个常见的选择。

2. 操作示例

① 自建数据库yum仓库

[root@localhost ~]# vim /etc/yum.repos.d/mysql.repo
[mysql57-community]
name=MySQL 5.7 community server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/
enabled=1    #该仓库是启用状态,可以被 Yum 使用来获取软件包和元数据信息
gpgcheck=0   #不校验

② yum安装mysql

[root@localhost ~]# yum install -y mysql-community-server

③ 启动数据库,修改密码策略,修改密码

[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# ss -natp | grep mysql
LISTEN     0      80          :::3306                    :::*                   users:(("mysqld",pid=2996,fd=21))
[root@localhost ~]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[root@localhost ~]# grep password /var/log/mysqld.log 
2024-03-03T12:53:22.236160Z 1 [Note] A temporary password is generated for root@localhost: C?Cb!T8yVuho
2024-03-03T12:59:23.653530Z 2 [Note] Access denied for user 'root'@'localhost' (using password: NO)
[root@localhost ~]# mysql -uroot -p
Enter password:                                 #复制C?Cb!T8yVuho
mysql> set global validate_password_policy=0;   #复杂性没有要求
Query OK, 0 rows affected (0.01 sec)

mysql> set global validate_password_length=1;   #长度没有要求
Query OK, 0 rows affected (0.00 sec)

mysql> alter user root@'localhost' identified by 'abc123';  #修改密码
Query OK, 0 rows affected (0.00 sec)
修改密码也可以:
mysqladmin  -uroot  -p'C?Cb!T8yVuho'  password '新密码'

④ 创建数据库

[root@localhost ~]# mysql -u root -p'abc123'
mysql> grant all on blog.* to 'bloguser'@'%' identified by 'abc123';
mysql> grant all on blog.* to 'bloguser'@'localhost' identified by 'abc123';
mysql> flush privileges;

 ⑤ 准备项目包

[root@localhost ~]# cd /usr/local/tomcat/webapps/
[root@localhost webapps]# systemctl start tomcat.service
[root@localhost webapps]# ls
docs  examples  host-manager  jpress-v3.2.1  jpress-v3.2.1.war  manager  ROOT  test
[root@localhost webapps]# ln -s jpress-v3.2.1 jpress

⑥ 访问站点目录注册登录

二、状态页 

1. 概述

Tomcat状态页是一个Web页面,它提供了有关Tomcat运行状态和性能的信息。通过查看状态页,你可以了解Tomcat的线程池使用情况、JVM内存使用情况、当前正在运行的应用程序等信息。默认的管理页面被禁用,启用方法如下:

2. server status 信息状态页

① 默认情况下状态页是无法查看的

② 配置文件添加角色密码

[root@localhost ~]# cd /usr/local/tomcat/conf/
[root@localhost conf]# ls
Catalina         catalina.properties  jaspic-providers.xml  logging.properties  tomcat-users.xml  web.xml
catalina.policy  context.xml          jaspic-providers.xsd  server.xml          tomcat-users.xsd
[root@localhost conf]# vim tomcat-users.xml     #加下面两行,指定用户和密码
 44 <role rolename="manager-gui"/>
 45 <user username="tomcat" password="tomcat" roles="manager-gui"/>
[root@localhost conf]# systemctl restart tomcat.service
#修改全局配置文件需要重启服务生效

 ③ 本机登录查看

④ 远程查看状态页

[root@localhost ~]# cd /usr/local/tomcat/webapps/manager/META-INF/
[root@localhost META-INF]# ls
context.xml
[root@localhost META-INF]# vim context.xml
 20          allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192\.\d+\.\d+\.\d+" />
#添加允许的192主机地址
[root@localhost META-INF]# systemctl restart tomcat.service

注意:一般不建议开启远程访问,可以指定允许特定地址。

3. manager app 项目管理状态页

① 管理现有web应用程序

② 可视化部署

4. host manger 虚拟主机管理状态页 

① 配置文件添加角色密码

[root@localhost ~]# cd /usr/local/tomcat/conf/
[root@localhost conf]# vim tomcat-users.xml
 45 <role rolename="admin-gui"/>
 46 <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
[root@localhost conf]# systemctl restart tomcat.service

② 添加远程查看状态页主机地址

[root@localhost META-INF]# cd /usr/local/tomcat/webapps/host-manager/META-INF/
[root@localhost META-INF]# ls
context.xml
[root@localhost META-INF]# vim context.xml 
20          allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192\.\d+\.\d+\.\d+" />
[root@localhost META-INF]# systemctl restart tomcat.service 

③ 访问状态页

三、常见配置

1. 端口8005/tcp安全配置管理

8005是Tomcat的管理端口,默认监听在127.0.0.1上。无需验证就可发送SHUTDOWN (大小写敏感)这个字符串,tomcat接收到后就会关闭此Server。

① 关闭8005端口

[root@localhost ~]# telnet 127.0.0.1 8005  #优雅的关闭
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SHUTDOWN
Connection closed by foreign host.

此管理功能建议禁用,可将SHUTDOWN改为一串猜不出的字符串实现;或者将port设为-1等无效端口,将关闭此功能此行不能被注释(!表示注释),否则无法启动tomcat服务

② 示例:修改配置文件

[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
22 <Server port="8005" shutdown="xxxxxxxxxxxx">
或者
22 <Server port="-1" shutdown="SHUTDOWN">

2. tomcat端口号

8080: 默认接收 http 请求的端口

8005: 安全端口,可以关闭tomcat

8009: apache 和 tomcat 联动 AJP 协议

3. 虚拟主机设置

可能有时候多个项目需要运行,肯定不可能是一台服务器上运行多个 Tomcat 服务,这样会消耗太多的系统资源。此时,就需要使用到Tomcat虚拟主机。

现在新增两个域名希望通过这两个域名访问到不同的项目内容:

① 创建虚拟主机相关目录

[root@localhost ~]# mkdir /data/web{1,2,3}/ROOT/ -p #默认页面在ROOT目录下
[root@localhost ~]# echo web1 > /data/web1/ROOT/index.html
[root@localhost ~]# echo web2 > /data/web2/ROOT/index.html
[root@localhost ~]# echo web3 > /data/web3/ROOT/index.html
[root@localhost ~]# chown -R tomcat.tomcat /data/

② 修改全局配置文件

[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
165       <Host name="www.a.com"  appBase="/data/web1"
166             unpackWARs="true" autoDeploy="true">
167       </Host>
168       <Host name="www.b.com"  appBase="/data/web2"
169             unpackWARs="true" autoDeploy="true">
170       </Host>
171       <Host name="www.c.com"  appBase="/data/web3"
172             unpackWARs="true" autoDeploy="true">
173       </Host>
#找到host主机项,注意根目录中一定要有ROOT这是默认的主目录
#注意默认的结束</HOST>这段要在默认结束的后面加上
[root@localhost ~]# systemctl restart tomcat.service

 ③ 客户端添加域名解析

[root@localhost ~]# vim /etc/hosts
192.168.190.102 www.a.com www.b.com www.c.com

④ 客户端访问对应域名

[root@localhost ~]# curl www.a.com:8080
web1
[root@localhost ~]# curl www.b.com:8080
web2
[root@localhost ~]# curl www.c.com:8080
web3

4. Context配置

Context是Tomcat中用于配置Web应用程序的组件。每个Web应用程序都必须在一个Context中进行配置。Context元素用于指定Web应用程序的上下文路径、Web应用程序的基本目录、类加载器、Session管理器等等。在Context中,你可以配置Web应用程序的各种行为,例如安全性、会话管理、JNDI 等等。

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来禁用。

示例: 

① 添加web文件

[root@localhost ~]# cd /data
[root@localhost data]# mkdir test
[root@localhost data]# echo test > test/index.html

② 修改配置文件

[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
165       <Host name="www.a.com"  appBase="/data/web1"
166             unpackWARs="true" autoDeploy="true">
167             <Context path="/test" docBase="/data/test" reloadable="false" />
168       </Host>
#如果访问www.a.com/test/那么就替换成"/data/test
[root@localhost ~]# systemctl restart tomcat.service

③ 客户端访问

[root@localhost ~]# curl www.a.com:8080/test/
test

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我国离子注入设备市场规模不断增加 本土企业仍有较大发展空间

我国离子注入设备市场规模不断增加 本土企业仍有较大发展空间 离子注入是半导体器件和集成电路生产的关键工艺之一&#xff0c;其提供的高精度和高均匀性可以大幅度提高集成电路的成品率。离子注入设备是芯片制造的核心工艺装备。 从全球市场来看&#xff0c;随着科学技术不断进…

Provisional headers are shown报错原因支付宝小程序跳转页面时Ajax请求被杀死

报错 Provisional headers are shown 支付宝小程序一个页面请求没有结束&#xff0c;就跳转到了另一个页面 解决&#xff1a; - 等待请求结束再跳转 - 使用settimeout使进程在宏任务队列不会被杀死 携带参数太多&#xff0c;请求头过大导致支付宝中请求表现为无响应。【在另一…

当Sora风靡,AI风潮吹醒金融科技

以下文章来源&#xff1a;凤凰网 前有OpenAI发布了Sora&#xff0c; 后有苹果放弃了秘密进行了十年的造车项目&#xff0c;转身拥抱AI&#xff0c; 再有国内市场上此起彼伏的AI呐喊声&#xff0c; 一场以AI为主导的新热浪&#xff0c;正在来袭。 当AI的风潮开始兴盛&#x…

【视频转码】基于ZLMediakit的视频转码技术概述

一、概述 zlmediakit pro版本支持基于ffmpeg的转码能力&#xff0c;在开源版本强大功能的基础上&#xff0c;新增支持如下能力&#xff1a; 1、音视频间任意转码(包括h265/h264/opus/g711/aac等)。2、基于配置文件的转码&#xff0c;支持设置比特率&#xff0c;codec类型等参…

js设计模式:解释器模式

作用: 对文本进行解释和编译的时候,就会用到解释器模式 比如你写了一段js代码,js引擎就会去解释并执行这段代码 webpack中的各种loader就是用来解释各种文件类型的,并将其解释为js可识别的代码 示例: //翻译词库const wordList [{text:韩信前期有蓝有红,必须拿二杀。你要是…

电脑解锁后黑屏有鼠标--亲测!!不需要重装系统!!

问题&#xff1a;上周电脑黑屏&#xff0c;只有鼠标&#xff0c;鼠标还不能右键&#xff01;&#xff01; 中招&#xff1a;win10系统最新版火绒安全 &#xff0c;那你有概率获得开机黑屏套餐一份。 原因是&#xff1a;火绒把我们的explorer删除了导致黑屏&#xff0c;这个文…

医院床旁交互系统概述 -智慧护理-全视通

全视通床旁交互系统是一种先进的医疗信息技术解决方案&#xff0c;旨在改善病患与医疗团队之间的沟通与交流。该系统通过集成多种高科技设备&#xff0c;为病患在病床边提供了一站式的信息交互平台&#xff0c;从而优化了医疗服务流程&#xff0c;提升了医疗体验。 首先&#x…

C# LaMa Image Inpainting 图像修复 Onnx Demo

目录 介绍 效果 模型信息 项目 代码 下载 LaMa Image Inpainting 图像修复 Onnx Demo 介绍 gihub地址&#xff1a;https://github.com/advimman/lama &#x1f999; LaMa Image Inpainting, Resolution-robust Large Mask Inpainting with Fourier Convolutions, WAC…

Python 应用程序编程接口库之pywin32使用详解

概要 在Python的世界里,有许多优秀的第三方库可以帮助开发者更轻松地处理各种任务。其中,pywin32库是一个特别引人注目的工具,它提供了对Windows API的完整访问,使得开发者能够利用Python来编写强大的Windows应用程序,从简单的脚本到复杂的桌面应用,pywin32都能胜任。 什…

anaconda创建虚拟环境(第一次玩)

首先需要打开anaconda prompt&#xff0c;打开后需要等待一会&#xff0c;他要加载。 然后你输入下面的代码&#xff0c;其中环境名和python版本可以自定义 conda create -n 环境名 python3.6比如我的是 conda create -n mnist python3.7.0 等待一会&#xff0c;中途需要你输…

【论文精读】基于知识图谱关系路径的多跳智能问答模型研究

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

Axure 入门文档 文件格式 全局样式 元件居中

文件格式 .rp 原型文件.rplib:元件库文件.rpteam 团队项目文件.html 项目网页文件 批量设置居中 选中多个&#xff0c;然后上方任务栏即可设置 设置自定义页面视图尺寸 项目-自适应视图设置 点击页面空白处就可以使用 添加元件说明 当一个元件创建好&#xff0c;可以设…

电脑怎么设置静态ip地址和动态

在数字时代&#xff0c;电脑与网络的关系日益紧密。对于大多数用户来说&#xff0c;电脑的网络设置可能是个相对陌生的领域&#xff0c;尤其是关于IP地址的选择与配置。IP地址&#xff0c;即“互联网协议地址”&#xff0c;是电脑在网络中的唯一标识。了解如何设置静态IP地址和…

JavaScript 原型链继承:掌握面向对象的基础

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

华为HQoS配置案例

HQoS基于层次化调度&#xff0c;cpe上支持三级队列&#xff1a; level3流队列&#xff1a;每个用户的同类业务是一个业务流&#xff0c;针对每个用户不同的业务流进行队列调度&#xff0c;流队列一般与业务类型对应&#xff08;EF、AF、BE等&#xff09;。 level2用户队列&…

Golang搭建grpc环境

简介 OS : Windows 11 Golang 版本: go1.22.0 grpc : 1.2 protobuffer: 1.28代理 没有代理国内环境下载不了库七牛CDN &#xff08;试过可用&#xff09; go env -w GOPROXYhttps://goproxy.cn,direct阿里云代理(运行grpc时下载包出现报错 ): go env -w GOPROXYhttps://mirr…

漫步者、南卡、Cleer开放式耳机怎么样?硬核对比测评性能强者!

​在当今市场上&#xff0c;开放式耳机的型号层出不穷&#xff0c;作为一名专业的测评博主&#xff0c;我对这类产品有着深入的了解和丰富的经验。最近&#xff0c;我的粉丝们通过私信向我咨询如何选择适合自己的开放式耳机&#xff0c;面对众多品牌的选择&#xff0c;他们感到…

基于springboot的场地预约小程序的设计与实现(程序+数据库+文档)

** &#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;** 目录 一、研…

OPC UA协议转换网关

在物联网和工业自动化的世界里&#xff0c;OPC UA&#xff08;OLE for Process Control Unified Architecture&#xff09;协议凭借其开放性和互操作性&#xff0c;正在逐渐成为不同设备和系统间通信的桥梁。然而&#xff0c;在实际应用中&#xff0c;由于各种历史和技术原因&a…

【MySQL】视图、索引

目录 视图视图的用途优点视图的缺点创建视图查看视图修改视图删除视图注意事项 索引索引的原理索引的数据结构二分查找法Hash结构Hash冲突&#xff01;&#xff01;&#xff01; B树二叉查找树 存在问题改造二叉树——B树降低树的高度 B树特点案例继续优化的方向 改造B树——B树…