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

目录

一、自建博客

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.xml20          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.xml45 <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.hqwc.cn/news/513733.html

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

相关文章

每日汇评:在美国关键数据公布前,黄金保持“逢低买入”的交易模式

金价从周二早间2120美元的三个月高点回落&#xff1b; 由于对中国的担忧&#xff0c;美元试图反弹&#xff0c;尽管美债收益率低迷&#xff1b; 在看涨的每日技术面设置中&#xff0c;黄金价格回落是一个很好的买入机会&#xff1b; 金价正在复制周一亚洲交易时段的修正走势&am…

Linux内核内存管理架构详解

内存管理子系统可能是linux内核中最为复杂的一个子系统&#xff0c;其支持的功能需求众多&#xff0c;如页面映射、页面分配、页面回收、页面交换、冷热页面、紧急页面、页面碎片管理、页面缓存、页面统计等&#xff0c;而且对性能也有很高的要求。本文从内存管理硬件架构、地址…

VScode+Live Service+Five Service实现php实时调试

VScodeLive ServiceFive Service实现php实时调试 一、VScode插件安装及配置 1.Code Runner settings.json设置&#xff08;打开方式&#xff1a;ctrlp&#xff0c;搜索settings.json&#xff09; 设置php为绝对路径&#xff08;注意路径分隔符为\\或/&#xff09; 2. Live S…

HUAWEI 华为交换机 配置 MAC 防漂移 防MAC伪造示例

组网需求 某企业网络中&#xff0c;用户需要访问企业的服务器。如果某些非法用户从其他接口假冒服务器的MAC 地址发送报文&#xff0c;则服务器的 MAC 地址将在其他接口学习到。这样用户发往服务器的报文就会发往非法用户&#xff0c;不仅会导致用户与服务器不能正常通信&…

B端设计:如何让UI组件库成为助力,而不是阻力。

Hi&#xff0c;我是大千UI工场&#xff0c;网上的UI组件库琳琅满目&#xff0c;比如elementUI、antdesign、iview等等&#xff0c;甚至很多前端框架&#xff0c;也出了很多UI组件&#xff0c;如若依、Layui、bootstrap等等&#xff0c;作为UI设计师该如何面对他们呢。 一、UI组…

深度学习模型部署(番外3)神经网络不同层的量化方法

神经网络层量化 批归一化层Batch Normalization(BN层) 关于归一化的原理可以看之前的这篇blog&#xff1a;BatchNorm原理与应用 批归一化在推理过程中会被融合到上一层或者下一层中&#xff0c;这种处理方式被称为批归一化折叠。这样可以减少量化&#xff0c;也可以减少属于的…

将ppt里的视频导出来

将ppt的后缀从pptx改为zip 找到【media】里面有存放图片和音频以及视频&#xff0c;看文件名后缀可以找到&#xff0c;mp4的即为视频&#xff0c;直接复制粘贴到桌面即可。 关闭压缩软件把ppt后缀改回&#xff0c;不影响ppt正常使用。

Android Studio开发(一) 构建项目

1、项目创建测试 1.1 前言 Android Studio 是由 Google 推出的官方集成开发环境&#xff08;IDE&#xff09;&#xff0c;专门用于开发 Android 应用程序。 基于 IntelliJ IDEA: Android Studio 是基于 JetBrains 的 IntelliJ IDEA 开发的&#xff0c;提供了丰富的功能和插件…

大数据开发-Hadoop分布式集群搭建

大数据开发-Hadoop分布式集群搭建 文章目录 大数据开发-Hadoop分布式集群搭建环境准备Hadoop配置启动Hadoop集群Hadoop客户端节点Hadoop客户端节点 环境准备 JDK1.8Hadoop3.X三台服务器 主节点需要启动namenode、secondary namenode、resource manager三个进程 从节点需要启动…

【Bugs】java: 错误: 不支持发行版本 xx

文章目录 报错场景&#xff1a;报错原因&#xff1a;解决方法&#xff1a; 报错场景&#xff1a; IDEA运行Java项目报错&#xff0c;点击运行之后&#xff0c;IDEA在编译代码的时候就出现报错&#xff1a; 报错类型一&#xff1a;java: 错误: 不支持发行版本 21报错类型二&am…

华为数通方向HCIP-DataCom H12-821题库(多选题:81-100)

第81题 在如图所示的网络中,所有的交换机运行RSTP协议,假如SWB的E1接口故障后, RSTP的处理过程时: A、SWB删除MAC地址表中以E1为目的的端口的端口项 B、在所有非边缘转发端口.上向外发送拓扑改变通知( Topology Change Notication ),通知其他交换机网络中出现了拓扑改变 C、重…