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

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

演示环境说明

系统:Debian 12 (Linux)

内存:2G

JAVA:17.0.17

一、安装JDK

bash 复制代码
# Debian/Ubuntu
apt update && apt install openjdk-17-jdk -y

# 验证
java -version

二、Tomcat 安装与基础部署

1.下载并解压Tomcat
bash 复制代码
wget https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.21/bin/apache-tomcat-11.0.21.tar.gz

tar -zxvf apache-tomcat-11.0.21.tar.gz
mv apache-tomcat-11.0.21 /usr/local/tomcat
2.启动Tomcat(默认运行在8080端口)
bash 复制代码
# 先加执行权限
chmod +x ./*.sh

# 启动
./startup.sh

# 停止
./shutdown.sh
3.验证是否启动成功
bash 复制代码
curl http://localhost:8080

成功返回HTML内容

三、部署项目进行验证

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

项目目录结构示例:

复制代码
tomcat-test/
├─ index.jsp
└─ WEB-INF/
   └─ web.xml
2.index.jsp(首页,Java+HTML)
jsp 复制代码
<%@ 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 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="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
bash 复制代码
./shutdown.sh
./startup.sh
6.访问测试
bash 复制代码
curl http://localhost:8080/tomcat-test/

四、性能调优

1.JVM 内存优化

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

bash 复制代码
#!/bin/bash
JAVA_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"   # 解决乱码
export JAVA_OPTS

赋予执行权限:

bash 复制代码
chmod +x ./setenv.sh
2.连接器(线程池)优化

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

xml 复制代码
<Connector
    port="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,找到 default servlet,添加:

xml 复制代码
<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> 前添加:

bash 复制代码
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<user username="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

xml 复制代码
<Context antiResourceLocking="false" privileged="true" ignoreAnnotations="true">
  <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />
  <!-- 允许所有IP访问 -->
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow=".*" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

同步修改 host-manager 配置

bash 复制代码
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

相关推荐
AAA代码批发商5 分钟前
Days 39 Linux C 开发之 SQLite 数据库完整学习笔记
linux·c语言·数据库
Wang's Blog1 小时前
Vibe Coding一人即团队系列54:云服务器 Node.js 与 MySQL 9 环境搭建及配置指南
服务器·人工智能·mysql·node.js
额额额对了1 小时前
Linux 数据库开发实战:使用 C 语言与 SQLite3 构建轻量级终端词典
linux·数据库·oracle
爱笑鱼1 小时前
Android 系统启动机制(六):Zygote 创建 App 为什么走 Socket?哪些是源码事实,哪些是架构解释?
android·linux
2601_962299881 小时前
Linux下运行Python脚本
linux·python·ubuntu·脚本·命令
Zenova EdgeOS1 小时前
Linux eBPF 工业边缘性能观测实战
linux·服务器·网络
数智启示录1 小时前
Apache Kafka Consumer 扩到 40 个仍不提速:Partition 上限锁死有效并行度 【Kafka合集】
数据库·经验分享·分布式·缓存·面试·kafka·apache
数智启示录1 小时前
Apache Kafka 幂等 Producer 的边界:Exactly-Once 到了 MySQL 为什么失效 【Kafka合集】
数据库·经验分享·分布式·mysql·面试·kafka·apache
skywalk81632 小时前
通过下载Ubuntu ova文件在Virtual Box快速安装ubuntu
linux·运维·ubuntu·virtualbox
姚不倒2 小时前
HAProxy 系列(四):多中间件统一 VIP 入口 — 架构模式与最佳实践
运维·中间件·架构·haproxy