Ubuntu Tomcat配置有哪些要点
小樊
45
2025-12-19 01:17:35
Ubuntu 上 Tomcat 配置要点
一 安装与运行方式
- 选择安装路径
- 包管理安装:使用 APT 安装系统自带的 tomcat9/tomcat9-admin,配置集中、易维护,适合生产。
- 手动安装:从 Apache Tomcat 官网下载压缩包,解压到 /opt 等目录,灵活可控,便于多版本并存与升级。
- 基础命令
- 包管理:sudo systemctl start|stop|restart|status tomcat9
- 手动:在 $CATALINA_HOME/bin 下执行 startup.sh / shutdown.sh
- 验证
- 访问 http://服务器IP:8080,出现欢迎页即表示运行正常。
二 目录结构与配置文件
- 包管理安装(APT)
- 配置:/etc/tomcat9/(核心配置)、/etc/default/tomcat9(环境变量与 JVM 参数)
- 应用:/var/lib/tomcat9/webapps/
- 日志:/var/log/tomcat9/
- 手动安装(压缩包)
- 配置:$CATALINA_HOME/conf/server.xml、$CATALINA_HOME/conf/tomcat-users.xml
- 应用:$CATALINA_HOME/webapps/
- 日志:$CATALINA_HOME/logs/
- 关键配置项
- server.xml:HTTP/HTTPS 连接器端口(默认 8080)、线程、SSL 等
- tomcat-users.xml:管理界面用户与角色(manager-gui、admin-gui)
- 环境变量:JAVA_HOME、CATALINA_HOME、CATALINA_BASE、JAVA_OPTS/CATALINA_OPTS。
三 服务管理与自启动
- 包管理安装
- 使用 systemd 管理:sudo systemctl enable --now tomcat9
- 修改配置后执行:sudo systemctl daemon-reload
- 手动安装
- 建议创建 systemd 服务单元(/etc/systemd/system/tomcat.service),示例关键项:
- Type=forking,ExecStart=$CATALINA_HOME/bin/startup.sh,ExecStop=$CATALINA_HOME/bin/shutdown.sh
- 设置运行用户(如 tomcat:tomcat)、环境变量(JAVA_HOME、CATALINA_HOME、CATALINA_BASE、JAVA_OPTS、CATALINA_OPTS)
- 启用开机自启:sudo systemctl enable --now tomcat
- 常用运维
- 查看状态/日志:systemctl status tomcat;tail -f catalina.out。
四 端口与防火墙
- 修改端口
- 编辑 server.xml 中的 Connector(HTTP 默认 8080;HTTPS 常用 8443),保存后重启服务。
- 外部访问
- 启用防火墙放行端口(以 ufw 为例):sudo ufw allow 8080/tcp;如需 HTTPS:sudo ufw allow 8443/tcp。
五 JVM 内存与 HTTPS 及安全加固
- JVM 内存与通用参数
- 在 /etc/default/tomcat9(APT)或 setenv.sh(手动)中设置:
- JAVA_OPTS:如 -Djava.awt.headless=true、-Djava.security.egd=file:/dev/./urandom
- CATALINA_OPTS:如 -Xms512M -Xmx1024M -server -XX:+UseParallelGC
- 启用 HTTPS
- 在 server.xml 配置 8443 连接器并启用 SSLEnabled=true,配置证书与密钥路径,重启生效。
- 管理界面与用户
- 安装管理组件(APT):sudo apt-get install tomcat9-admin
- 在 tomcat-users.xml 添加用户与角色(示例:manager-gui、admin-gui),注意强口令与最小权限。
- 运行用户与权限
- 建议创建专用系统用户 tomcat,将 $CATALINA_HOME 属主设为 tomcat:tomcat,必要时对 logs/、work/、temp/、webapps/ 赋予组写权限,避免以 root 运行。
- 日志与合规
- 若出现日志权限问题,可调整 umask(如在 catalina.sh 中设置 umask 0022)或修正日志目录权限,确保可写可读。