微信优化

weixinyouhua

Tomcat安装与配置怎么做,新手必看详细步骤,常见问题解决

2026-09-19 16:07:32

Tomcat安装配置的核心只有四步:装好JDK,设对JAVA_HOME,解压Tomcat包,改好端口和启动脚本,Linux生产环境优先用systemd托管,Windows开发环境用startup.bat或安装服务即可跑起来。

Tomcat怎么安装配置环境变量?先理顺Java依赖

Tomcat本身是纯Java写的,所以安装Tomcat之前必须先装JDK,很多新手在环境变量这步卡住,不是因为步骤难,而是JAVA_HOME路径写错,或者系统里同时存在多个Java版本导致冲突。

  • Windows环境变量配置路径:此电脑属性-高级系统设置-环境变量
  • 新建JAVA_HOME,值指向JDK安装目录,例如C:\Program Files\Java\jdk-11.0.x
  • 新建CATALINA_HOME,值指向Tomcat解压目录,例如D:\apache-tomcat-9.0.x
  • 编辑Path,追加%JAVA_HOME%\bin和%CATALINA_HOME%\bin
  • Linux下在/etc/profile或~/.bashrc追加:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export CATALINA_HOME=/opt/tomcat
export PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH

保存后执行source /etc/profile或source ~/.bashrc让其生效。

验证环境变量是否正确,直接跑三条命令:

  • java -version
  • javac -version
  • catalina.sh version

如果前两条都能正常显示版本,第三条能看到Tomcat版本信息,说明JDK和Tomcat的环境变量已经通了。

业内专家指出,多数Tomcat启动失败并不是安装包本身有问题,而是JDK版本与Tomcat大版本不匹配,例如Tomcat 10要求Java 11及以上,Tomcat 9支持Java 8到Java 11,装错版本会让启动脚本报出看不懂的异常。

Linux服务器Tomcat安装配置详细步骤

安装JDK并验证版本

Ubuntu或Debian系统直接执行:

sudo apt update
sudo apt install openjdk-11-jdk -y

CentOS、Rocky Linux或Alibaba Cloud Linux执行:

sudo dnf install java-11-openjdk-devel -y

安装完成后运行java -version,确认输出里包含11或你需要的Java大版本。

Tomcat安装与配置怎么做,新手必看详细步骤,常见问题解决

下载解压Tomcat二进制包

根据Apache Tomcat官方文档,生产环境推荐使用二进制tar.gz包直接部署,不建议用系统包管理工具安装,因为版本更新慢且目录结构不同。

curl -O https://downloads.apache.org/tomcat/tomcat-9/v9.0.x/bin/apache-tomcat-9.0.x.tar.gz
sudo tar -xzf apache-tomcat-9.0.x.tar.gz -C /opt
sudo ln -s /opt/apache-tomcat-9.0.x /opt/tomcat

创建软链接的好处是以后升级版本时,只需要把新版本解压到/opt下,再重做一个软链接指向新目录,不用改环境变量。

配置systemd服务与防火墙端口

创建/etc/systemd/system/tomcat.service如下:

[Unit]
Description=Apache Tomcat
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target

执行以下命令启用并启动:

sudo systemctl daemon-reload
sudo systemctl enable tomcat --now

放行8080端口:

  • 使用firewalld:sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload
  • 使用ufw:sudo ufw allow 8080/tcp

查看启动日志用tail -f /opt/tomcat/logs/catalina.out,如果看到Server startup in字样,说明Tomcat已经在Linux服务器上正常跑起来。

简米云服务器安装Tomcat收费吗?开源协议说明

直接回答:Tomcat本身不收费,它采用Apache License 2.0开源协议,个人学习、企业内部部署、商业项目使用都不需要向任何机构支付软件授权费。

真正产生费用的是云服务器资源,

  • 云服务器实例规格费用
  • 公网带宽或流量费用
  • 数据盘费用
  • 快照和负载均衡等附加产品费用

在简米云服务器安装Tomcat,安装过程不会额外产生软件费用,新手常见的访问不通问题,多数情况下不是云厂商限制,而是安全组没有放行8080端口,不同地域节点如华东1、华北2的安装方法完全一致,唯一区别是网络延迟和可用区资源。

Tomcat安装与配置怎么做,新手必看详细步骤,常见问题解决

所以无论是简米云还是本地虚拟机,Tomcat安装配置教程里软件本身永远免费,成本只来自服务器硬件和网络资源。

Tomcat和Nginx的区别:一个管Java应用,一个管静态流量

两者经常被放在一起比较,但定位完全不同,Tomcat是Java Servlet容器,负责执行Java程序、处理JSP和Servlet,Nginx是HTTP反向代理和静态资源服务器,自身不解析Java。

对比维度 Tomcat Nginx
核心定位 Java Servlet容器 反向代理、静态资源服务器
动态处理 原生支持JSP、Servlet、WebSocket 不直接处理Java,需代理到Tomcat
静态资源性能 一般,占用JVM内存 高并发下表现好,内存占用低
运行依赖 依赖JDK 纯C编写,不依赖Java
典型场景 运行Spring Boot、WAR包应用 前端静态页、HTTPS终止、负载均衡

行业共识认为,生产环境多数情况下不会让Tomcat直接暴露在公网,而是在前面挂一台Nginx,Nginx负责接收浏览器请求、处理静态文件、做HTTPS加密,再把动态请求转发给Tomcat,这样既能发挥Nginx的并发优势,又能让Tomcat专注处理业务逻辑。

所以Tomcat安装配置完成后,如果要正式上线,通常还会再加一层Nginx反向代理。

Tomcat安装后基础配置与启动优化

修改端口和连接器参数

conf/server.xml里的Connector标签控制HTTP端口和连接参数:

  • port="8080"可以根据需要改成80或其他未占用端口
  • protocol="org.apache.coyote.http11.Http11NioProtocol"开启NIO模式
  • URIEncoding="UTF-8"必须加上,否则中文请求参数容易乱码
  • maxThreads表示最大线程数,默认值多数情况下够用,不建议盲目调大
  • Tomcat安装与配置怎么做,新手必看详细步骤,常见问题解决

  • acceptCount表示最大等待队列长度,高并发时可适当调大

JVM内存参数

在bin/setenv.sh中设置CATALINA_OPTS,Linux示例:

CATALINA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC"

Windows在bin/setenv.bat中写类似的set CATALINA_OPTS=,如果项目运行中频繁出现OutOfMemoryError,优先调大-Xmx,但不要超过物理内存的较大比例,否则系统会频繁交换内存导致整个服务器变慢。

目录权限与安全基线

  • 不要用root用户直接启动Tomcat,建立专用系统用户并将Tomcat目录属组划归该用户
  • 删除webapps下的默认演示应用docs、examples,如果没有使用manager和host-manager也应移除或限制访问
  • 生产环境保持最低权限运行,避免Tomcat进程拥有修改自身目录的过高权限

Tomcat安装配置本质上不复杂,把JDK、环境变量、启动脚本、端口权限这四个环节理清,基本就能跑起来,后续优化都是围绕生产环境的稳定性展开,而不是安装环节本身。

Tomcat安装配置常见问题Q&A

Tomcat安装配置后浏览器访问8080打不开怎么办?

先看Tomcat是否启动成功,再看防火墙或云安全组是否放行8080,最后检查server.xml里Connector的address属性是否被写成了0.0.1,多数情况下按这个顺序排查三步就能定位问题。

Linux服务器上Tomcat怎么设置开机自启?

使用systemd单元文件托管Tomcat,执行systemctl enable tomcat即可,如果因为特殊原因不能使用systemd,也可以把startup.sh写入rc.local,但生产环境不推荐,因为系统重启后无法自动处理进程异常退出。

Tomcat和Nginx哪个更适合部署Spring Boot项目?

Spring Boot应用本身内嵌了Tomcat,多数情况下直接以可执行Jar包运行即可,不需要额外安装Tomcat,如果项目需要负载均衡、HTTPS终止或托管前端静态资源,再在前面挂一台Nginx是更合适的做法,两者不是二选一,而是组合使用。

相关文章

2024年,SaaS软件行业碰到获客难、增长慢等问题吗?

我们努力让每一次邂逅总能超越期待