当前位置:   article > 正文

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

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仓库

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

② yum安装mysql

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

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

  1. [root@localhost ~]# systemctl start mysqld
  2. [root@localhost ~]# ss -natp | grep mysql
  3. LISTEN 0 80 :::3306 :::* users:(("mysqld",pid=2996,fd=21))
  4. [root@localhost ~]# mysql
  5. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
  6. [root@localhost ~]# grep password /var/log/mysqld.log
  7. 2024-03-03T12:53:22.236160Z 1 [Note] A temporary password is generated for root@localhost: C?Cb!T8yVuho
  8. 2024-03-03T12:59:23.653530Z 2 [Note] Access denied for user 'root'@'localhost' (using password: NO)
  9. [root@localhost ~]# mysql -uroot -p
  10. Enter password: #复制C?Cb!T8yVuho
  11. mysql> set global validate_password_policy=0; #复杂性没有要求
  12. Query OK, 0 rows affected (0.01 sec)
  13. mysql> set global validate_password_length=1; #长度没有要求
  14. Query OK, 0 rows affected (0.00 sec)
  15. mysql> alter user root@'localhost' identified by 'abc123'; #修改密码
  16. Query OK, 0 rows affected (0.00 sec)
  17. 修改密码也可以:
  18. mysqladmin -uroot -p'C?Cb!T8yVuho' password '新密码'

④ 创建数据库

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

 ⑤ 准备项目包

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

⑥ 访问站点目录注册登录

二、状态页 

1. 概述

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

2. server status 信息状态页

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

② 配置文件添加角色密码

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

 ③ 本机登录查看

④ 远程查看状态页

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

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

3. manager app 项目管理状态页

① 管理现有web应用程序

② 可视化部署

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

① 配置文件添加角色密码

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

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

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

③ 访问状态页

三、常见配置

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

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

① 关闭8005端口

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

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

② 示例:修改配置文件

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

2. tomcat端口号

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

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

8009: apache 和 tomcat 联动 AJP 协议

3. 虚拟主机设置

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

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

① 创建虚拟主机相关目录

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

② 修改全局配置文件

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

 ③ 客户端添加域名解析

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

④ 客户端访问对应域名

  1. [root@localhost ~]# curl www.a.com:8080
  2. web1
  3. [root@localhost ~]# curl www.b.com:8080
  4. web2
  5. [root@localhost ~]# curl www.c.com:8080
  6. web3

4. Context配置

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

Context作用:

  • 路径映射:将url映射至指定路径,而非使用appBase下的物理目录,实现虚拟目录功能
  • 应用独立配置,例如单独配置应用日志、单独配置应用访问控制

 格式:

  1. #映射指定路径
  2. <Context path="/test" docBase="/data/test" reloadable="true" />
  3. #映射站点的根目录
  4. <Context path="/" docBase="/data/website" reloadable="true" />
  5. #还可以添加日志等独立的配置
  6. <Context path="/test" docBase="/data/test" reloadable="true" >
  7.  <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
  8.               prefix="localhost_test_log" suffix=".txt"
  9.               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
  10. </Context>

说明:

  • path:指的是访问的URL路径,如果path与appBase下面的子目录同名,context的docBase路径优先更高
  • docBase:可以是磁盘文件的绝对路径,也可以是相对路径(相对于Host的appBase)
  • reloadable:true表示如果WEB-INF/classes或META-INF/lib目录下.class文件有改动,就会将WEB应用重新加载。生产环境中,建议使用false来禁用。

示例: 

① 添加web文件

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

② 修改配置文件

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

③ 客户端访问

  1. [root@localhost ~]# curl www.a.com:8080/test/
  2. test
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/217098
推荐阅读
相关标签
  

闽ICP备14008679号