🎬 HoRain 云小助手:个人主页
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
目录
以下是在Ubuntu 18.04系统上通过源码编译安装Tomcat的完整教程,结合最佳实践和安全规范,涵盖依赖安装、源码编译、权限配置、服务管理及安全加固等关键步骤:
🔧 一、环境准备
-
更新系统及安装依赖
sudo apt update && sudo apt upgrade -y # 更新系统 sudo apt install wget tar openjdk-11-jdk build-essential -y # 安装JDK和编译工具
- 验证Java环境:
java -version # 需显示OpenJDK 11
- 验证Java环境:
-
创建专用用户(避免root运行)
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat # 创建用户和组
⬇️ 二、下载并编译Tomcat源码
-
获取最新源码包(以Tomcat 9.0.x为例)
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.85/bin/apache-tomcat-9.0.85.tar.gz -P /tmp sudo tar -xf /tmp/apache-tomcat-*.tar.gz -C /opt/tomcat/ --strip-components=1 # 解压至/opt/tomcat
-
设置目录权限
sudo chown -R tomcat:tomcat /opt/tomcat # 归属专用用户 sudo chmod -R 755 /opt/tomcat # 基础权限
⚙️ 三、配置Tomcat环境
-
设置环境变量
编辑用户配置文件(如~/.bashrc
):export CATALINA_HOME=/opt/tomcat export PATH=$PATH:$CATALINA_HOME/bin
生效配置:
source ~/.bashrc
-
优化启动参数
编辑$CATALINA_HOME/bin/setenv.sh
(若不存在则创建):# 内存优化(根据服务器配置调整) export JAVA_OPTS="-Xms512M -Xmx1024M -server -XX:+UseParallelGC" # 禁用高风险协议 export CATALINA_OPTS="-Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true"
设置执行权限:
sudo chmod +x $CATALINA_HOME/bin/setenv.sh
🔒 四、配置Systemd服务(生产环境必备)
-
创建服务文件
sudo nano /etc/systemd/system/tomcat.service
写入以下内容:
[Unit] Description=Apache Tomcat 9 Servlet Container After=network.target [Service] Type=forking User=tomcat Group=tomcat Environment="CATALINA_HOME=/opt/tomcat" Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64" ExecStart=$CATALINA_HOME/bin/startup.sh ExecStop=$CATALINA_HOME/bin/shutdown.sh RestartSec=10 Restart=always [Install] WantedBy=multi-user.target
-
启动并自启服务
sudo systemctl daemon-reload sudo systemctl start tomcat sudo systemctl enable tomcat # 开机自启
🛡️ 五、安全加固与权限管理
-
防火墙配置
sudo ufw allow 8080/tcp # 开放Tomcat默认端口 sudo ufw allow 80,443/tcp # 若需反向代理,开放HTTP/HTTPS sudo ufw enable
-
限制管理界面访问
- 修改
webapps/manager/META-INF/context.xml
:<!-- 仅允许本地和指定IP访问 --> <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|192\.168\.1\.\d+" />
- 禁用未使用的Web应用:
删除webapps
目录下的docs
、examples
等非必需应用。
- 修改
-
配置HTTPS加密
生成证书并配置server.xml
:<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" keystoreFile="/path/to/keystore.jks" keystorePass="your_password" />
🧪 六、验证与测试
-
检查服务状态
sudo systemctl status tomcat # 应显示"active (running)" tail -f $CATALINA_HOME/logs/catalina.out # 实时监控日志
-
访问测试页面
浏览器打开http://服务器IP:8080
,应显示Tomcat欢迎页。 -
部署测试应用
将WAR文件放入webapps/
目录,自动部署后访问http://IP:8080/应用名
。
⚠️ 关键注意事项
-
权限最小化原则
- 禁止以root运行Tomcat,专用用户
tomcat
仅需/opt/tomcat
目录的读写权限。 - 敏感文件(如
conf/tomcat-users.xml
)权限设为600:sudo chmod 600 $CATALINA_HOME/conf/tomcat-users.xml
- 禁止以root运行Tomcat,专用用户
-
资源访问配置
- 映射本地资源(如图片目录):
<Context docBase="/path/to/resources" path="/static" />
- 修改端口:编辑
conf/server.xml
中的<Connector port>
。
- 映射本地资源(如图片目录):
-
定期维护
- 清理日志:
$CATALINA_HOME/logs/
定期归档或删除。 - 更新版本:关注Apache官网安全公告,及时升级。
- 清理日志:
💡 故障排查:
- 启动失败:检查
java
路径、端口冲突(netstat -tunlp|grep 8080
)、目录权限。- 应用无法访问:确认WAR文件完整性及
webapps
目录权限(sudo chown tomcat:tomcat webapps
)。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙