当前位置: 首页 > news >正文

Tomcat商业部署调优(待完成)

调试下(临时开启)tomcat manager-gui (注1)(注2)

<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="admin-script"/>
<role rolename="admin-gui"/>
<role rolename="manager-jmx"/>
<role rolename="manager-script"/>
<role rolename="manager-status"/>
<user username="tests" password="123456" roles="manager,manager-gui,admin-script,admin-gui,manager-jmx,manager-script,manager-status"/>

访问:ip:8080/manager (如果无法正常显示的情况下)

需要注释/usr/local/tomcat/webapps/manager/META-INF/context.xml中的 注3

  <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />--> 

注1:什么是tomcat manager-gui?

1. manager-gui角色核心功能

  • 可视化操作界面:提供Web图形化界面(通过/manager路径访问),支持部署/卸载WAR包、启动/停止应用、查看实时日志等操作。

  • 典型应用场景:开发调试时快速部署应用,无需重启Tomcat;生产环境需谨慎配置权限。

  • 安全风险:默认密码(如示例中的123456)需修改,避免未授权访问。

2. 其他关键角色对比

角色

功能描述

manager

基础管理角色,支持脚本化操作(如通过HTTP请求部署应用)

admin-gui

高级管理界面,可修改全局配置(如server.xml)

manager-jmx

通过JMX协议远程管理Tomcat服务器(需启用JMX服务)

manager-status

仅允许查看服务器状态(如线程池、内存使用情况)

3. 用户配置分析

示例中用户tomcat被赋予7种角色,实际需按需分配:

  • 开发环境:可开放manager-gui和admin-gui便于调试。

  • 生产环境:建议仅分配manager-status或manager-jmx,避免误操作。

4. 安全实践建议

  • 密码策略:强制使用强密码,定期更换。

  • 权限隔离:不同角色分配给不同用户(如运维人员用admin-gui,开发者用manager-gui)。

  • 网络防护:限制管理界面IP访问(配置<Valve>规则)。

注2:示例代码中的含义是什么?

一、角色定义(Role Definitions)

  1. <role rolename="manager"/>

    • 基础管理角色‌:允许访问Tomcat Manager的基础功能(如查看应用列表),但单独使用时不具备具体操作权限,需配合其他细化角色。
  2. <role rolename="manager-gui"/>

    • 图形界面管理‌:授权用户通过Web浏览器访问/manager/html界面,支持可视化操作(部署/卸载WAR包、启动/停止应用等)。
  3. <role rolename="admin-gui"/>

    • 全局配置管理‌:允许访问Host Manager界面(/host-manager/html),可动态添加/删除虚拟主机(修改server.xml需重启生效)。
  4. <role rolename="manager-script"/>

    • 脚本化操作‌:通过HTTP API(/manager/text/*)执行部署/卸载等命令,适用于CI/CD工具链集成,如curl调用。
  5. <role rolename="manager-jmx"/>

    • JMX远程管理‌:允许通过JMX协议(如JConsole)监控和修改Tomcat运行时参数(需启用JMX端口)。
  6. <role rolename="manager-status"/>

    • 只读状态查看‌:仅允许查看服务器状态页面(/manager/status),显示线程池、内存使用等监控数据,无操作权限。
  7. <role rolename="admin-script"/>

    • 主机管理API‌:类似manager-script,但针对Host Manager的HTTP API(如动态增删虚拟主机)。

二、用户配置(User Assignment)

<user username="tests" password="123456" roles="manager,manager-gui,admin-script,admin-gui,manager-jmx,manager-script,manager-status"/>
  • 用户名/密码‌:用户tomcat通过密码123456认证(生产环境必须修改为强密码)。
  • 权限分配‌:该用户拥有所有管理权限,包括:
    • 图形界面(manager-gui + admin-gui
    • 脚本化操作(manager-script + admin-script
    • JMX远程控制(manager-jmx
    • 状态监控(manager-status

三、安全建议

  1. 最小权限原则‌:按需分配角色,例如:

    • 开发者:manager-gui + manager-script
    • 运维:admin-gui + manager-jmx
    • 监控员:仅manager-status
  2. 密码策略‌:避免使用默认密码,定期更换并启用HTTPS加密通信。

  3. 访问限制‌:通过conf/context.xml限制管理端口的IP访问:4.

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*"/>

    4.生产环境禁用‌:若非必需,建议关闭Manager和Host Manager应用。

注3:为什么要注释 <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />?

因为默认只能本机访问,注释掉以后别的机器也可以访问了


    文章转载自:

    http://sSF2PPMb.ghzfx.cn
    http://zoTrffeL.ghzfx.cn
    http://TiW2WG6C.ghzfx.cn
    http://FKXWBJZM.ghzfx.cn
    http://oLnSJFXt.ghzfx.cn
    http://p7SQ8V6K.ghzfx.cn
    http://ZfxnFnTA.ghzfx.cn
    http://h471gvkS.ghzfx.cn
    http://DTp7QsCC.ghzfx.cn
    http://ZV4IWVQo.ghzfx.cn
    http://9Qpupxdy.ghzfx.cn
    http://WWkoAgBs.ghzfx.cn
    http://SlUZgWIl.ghzfx.cn
    http://2TPGsV1d.ghzfx.cn
    http://W25p6MhA.ghzfx.cn
    http://oX4CKcl6.ghzfx.cn
    http://mxFQHrsp.ghzfx.cn
    http://YsAXxbS3.ghzfx.cn
    http://ImSdfT16.ghzfx.cn
    http://ofK5dcXL.ghzfx.cn
    http://2Im5ntJE.ghzfx.cn
    http://jGbgyaQp.ghzfx.cn
    http://lcEaPdK4.ghzfx.cn
    http://0kjqLG8b.ghzfx.cn
    http://4o6sS3KG.ghzfx.cn
    http://GzdtIc1f.ghzfx.cn
    http://U5gG1R07.ghzfx.cn
    http://DOZ6VABb.ghzfx.cn
    http://YnYbUxjy.ghzfx.cn
    http://hgOjOMLT.ghzfx.cn
    http://www.dtcms.com/a/374615.html

    相关文章:

  1. GitHub SSH 连接超时解决方法 | 网络屏蔽了 GitHub 的 SSH 端口(22)
  2. PyTorch自定义模型结构详解:从基础到高级实践
  3. PythonSpark综合案例
  4. 【Leetcode】高频SQL基础题--626.换座位
  5. 字符串-14.最长公共前缀-力扣(LeetCode)
  6. RISC-V开发环境搭建
  7. Jmeter请求发送加密参数
  8. git删除最近一次提交包括历史记录。
  9. jmeter 带函数压测脚本
  10. jmeter实现两个接口的同时并发
  11. 在git仓库的空文件夹中添加.gitkeep文件
  12. Vue3+Node.js 实现大文件上传:断点续传、秒传、分片上传完整教程(含源码)
  13. 大数据毕业设计选题推荐-基于大数据的国内旅游景点游客数据分析系统-Spark-Hadoop-Bigdata
  14. Shell 脚本基础、组成结构、调试与运算符
  15. Axum web框架【实习】
  16. 吾律——让普惠法律服务走进生活
  17. 【重学 MySQL】一百、MySQL的权限管理与访问控制
  18. STM32F103C8T6开发板入门学习——点亮LED灯2
  19. RISC-V体系架构
  20. 创作纪念日·512天
  21. 【芯片设计-信号完整性 SI 学习 1.1 -- 眼图、抖动、反射、串扰】
  22. 小迪安全v2023学习笔记(八十讲)—— 中间件安全WPS分析WeblogicJenkinsJettyCVE
  23. 【Linux】基础指令(下)
  24. linux 环境下Docker 安装
  25. Nginx 配置
  26. 20250910_《SQL Server 数据库事务日志定期清理方案(精简优化版)》以10.1.1.31服务器的gtp-default数据库为例
  27. 多输入(input)多输出(output)验证
  28. 排查JSch连接SFTP服务器失败的问题
  29. JMeter压测过程中监控服务器CPU及内存的方法
  30. 整理python快速构建数据可视化前端的Dash库