news 2026/5/3 22:51:00

Linux安装配置Tomcat保姆级教程:从部署到性能调优

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux安装配置Tomcat保姆级教程:从部署到性能调优

Linux服务器Tomcat安装及配置教程

演示环境说明

系统:Debian 12 (Linux)

内存:2G

JAVA:17.0.17

一、安装JDK

# Debian/Ubuntuaptupdate&&aptinstallopenjdk-17-jdk-y# 验证java-version

二、Tomcat 安装与基础部署

1.下载并解压Tomcat
wgethttps://dlcdn.apache.org/tomcat/tomcat-11/v11.0.21/bin/apache-tomcat-11.0.21.tar.gztar-zxvfapache-tomcat-11.0.21.tar.gzmvapache-tomcat-11.0.21 /usr/local/tomcat
2.启动Tomcat(默认运行在8080端口)
# 先加执行权限chmod+x ./*.sh# 启动./startup.sh# 停止./shutdown.sh

3.验证是否启动成功
curlhttp://localhost:8080

成功返回HTML内容

三、部署项目进行验证

1.创建一个简单的Java web项目进行测试

项目目录结构示例:

tomcat-test/ ├─ index.jsp └─ WEB-INF/ └─ web.xml
2.index.jsp(首页,Java+HTML)
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Tomcat 测试</title> </head> <body> <h2>✅ Tomcat 部署成功!</h2> <p>服务器时间:<%= new java.util.Date() %></p> <p>JSP 运行正常 | Java Web 环境没问题</p> </body> </html>
3.WEB-INF/web.xml(必需配置文件)
<?xml version="1.0" encoding="UTF-8"?><web-appxmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><display-name>TomcatTestDemo</display-name><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>
4.部署

把整个tomcat-test文件夹上传到服务器apache-tomcat-11.0.21/webapps目录下

5.重启Tomcat
./shutdown.sh ./startup.sh
6.访问测试
curlhttp://localhost:8080/tomcat-test/

四、性能调优

1.JVM 内存优化

创建并编辑/usr/local/tomcat/apache-tomcat-11.0.21/bin/setenv.sh

#!/bin/bashJAVA_OPTS="-server"JAVA_OPTS="$JAVA_OPTS-Xms512m -Xmx1g"# 堆内存:初始 512M,最大 1G,不抢占系统资源JAVA_OPTS="$JAVA_OPTS-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m"# 元空间配置JAVA_OPTS="$JAVA_OPTS-XX:+UseG1GC"# G1 垃圾回收(低延迟)JAVA_OPTS="$JAVA_OPTS-Dfile.encoding=UTF-8"# 解决乱码exportJAVA_OPTS

赋予执行权限:

chmod+x ./setenv.sh
2.连接器(线程池)优化

编辑/usr/local/tomcat/conf/server.xml,替换默认 Connector:

<Connectorport="8080"protocol="org.apache.coyote.http11.Http11Nio2Protocol"maxThreads="150"minSpareThreads="30"maxConnections="8000"acceptCount="80"connectionTimeout="20000"keepAliveTimeout="15000"compression="on"compressionMinSize="1024"compressableMimeType="text/html,text/css,application/javascript,application/json"redirectPort="8443"/>
3.WEB.XML 静态资源缓存优化

编辑/usr/local/tomcat/apache-tomcat-11.0.21/conf/web.xml,找到defaultservlet,添加:

<init-param><param-name>cached</param-name><param-value>true</param-value></init-param><init-param><param-name>cacheMaxSize</param-name><param-value>10240</param-value></init-param>

五、Tomcat管理后台配置

1.配置管理员账号

编辑/usr/local/tomcat/apache-tomcat-11.0.21/conf/tomcat-users.xml,在</tomcat-users>前添加:

<rolerolename="manager-gui"/><rolerolename="manager-status"/><userusername="admin"password="123456"roles="manager-gui,manager-status"/>#管理员账号admin,密码123456

2.开放远程访问控制(方便测试)

编辑/usr/local/tomcat/apache-tomcat-11.0.21/webapps/manager/META-INF/context.xml

<ContextantiResourceLocking="false"privileged="true"ignoreAnnotations="true"><CookieProcessorclassName="org.apache.tomcat.util.http.Rfc6265CookieProcessor"sameSiteCookies="strict"/><!-- 允许所有IP访问 --><ValveclassName="org.apache.catalina.valves.RemoteAddrValve"allow=".*"/><ManagersessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/></Context>

同步修改 host-manager 配置

cp/usr/local/tomcat/apache-tomcat-11.0.21/webapps/manager/META-INF/context.xml /usr/local/tomcat/apache-tomcat-11.0.21/webapps/host-manager/META-INF/context.xml

六、查看Tomcat后台状态

1.登录后台

访问地址:http://你的服务器IP:8080/ 账号:admin密码:123456

2.查看刚才部署的JAVA项目状态

在【应用程序列表】可以看到Tomcat运行的所有Java项目

3.查看配置的性能优化

可以直接访问http://你的服务器IP:8080/manager/status/all

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 22:49:26

为什么会出现Reactor?IO模型的本质(从线程到协程 · 第3篇)

系列第3篇&#xff5c;承接上一篇《线程池解决了什么&#xff1f;为什么还不够&#xff1f;》 本篇讲清楚&#xff1a;为什么线程池在高并发IO下仍然不够 → Reactor如何解决 一、先说结论&#xff08;一定要记住&#xff09; &#x1f449; Reactor的核心思想只有一句话&…

作者头像 李华
网站建设 2026/5/3 22:47:24

从法证新手到效率达人:我的Autopsy 4.19.3工作流搭建与模块初探

从法证新手到效率达人&#xff1a;我的Autopsy 4.19.3工作流搭建与模块初探 第一次打开Autopsy时&#xff0c;面对密密麻麻的菜单和术语&#xff0c;我仿佛站在数字取证世界的入口处——既兴奋又迷茫。这款开源神器能分析磁盘镜像、恢复删除文件、解析浏览器历史&#xff0c;甚…

作者头像 李华
网站建设 2026/5/3 22:46:25

Select to Think:蒸馏 token 排序能力,效果平均提升24%

一句话总结 SLM 的效果差不是因为它不会&#xff0c;而是它没把正确答案排到第一&#xff1b;蒸馏排序能力让 SLM 效果平均提升 24% 论文标题&#xff1a;Select to Think: Unlocking SLM Potential with Local Sufficiency论文地址&#xff1a;http://arxiv.org/pdf/2604.2694…

作者头像 李华
网站建设 2026/5/3 22:37:32

Python调试器无法进入execute()内部?突破pdb限制:用sys.settrace+DB-API钩子实现语句级单步追踪(生产环境可用)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Python数据库调试的现状与挑战 Python 应用在连接和操作数据库时&#xff0c;常因环境差异、驱动兼容性、SQL 语法误用或事务管理疏漏而陷入难以复现的调试困境。开发者往往在本地运行正常&#xff0c;…

作者头像 李华