HoRain云--Ubuntu18.04源码编译Tomcat全攻略

  

🎬 HoRain 云小助手个人主页

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

目录

⛳️ 推荐

🔧 ​​一、环境准备​​

⬇️ ​​二、下载并编译Tomcat源码​​

⚙️ ​​三、配置Tomcat环境​​

🔒 ​​四、配置Systemd服务(生产环境必备)​​

🛡️ ​​五、安全加固与权限管理​​

🧪 ​​六、验证与测试​​

⚠️ ​​关键注意事项​​


以下是在Ubuntu 18.04系统上通过​​源码编译安装Tomcat​​的完整教程,结合最佳实践和安全规范,涵盖依赖安装、源码编译、权限配置、服务管理及安全加固等关键步骤:


🔧 ​​一、环境准备​

  1. ​更新系统及安装依赖​

    sudo apt update && sudo apt upgrade -y  # 更新系统
    sudo apt install wget tar openjdk-11-jdk build-essential -y  # 安装JDK和编译工具
    • ​验证Java环境​​:
      java -version  # 需显示OpenJDK 11
  2. ​创建专用用户(避免root运行)​

    sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat  # 创建用户和组

⬇️ ​​二、下载并编译Tomcat源码​

  1. ​获取最新源码包​​(以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
  2. ​设置目录权限​

    sudo chown -R tomcat:tomcat /opt/tomcat  # 归属专用用户
    sudo chmod -R 755 /opt/tomcat  # 基础权限

⚙️ ​​三、配置Tomcat环境​

  1. ​设置环境变量​
    编辑用户配置文件(如~/.bashrc):

    export CATALINA_HOME=/opt/tomcat
    export PATH=$PATH:$CATALINA_HOME/bin

    生效配置:

    source ~/.bashrc
  2. ​优化启动参数​
    编辑$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服务(生产环境必备)​

  1. ​创建服务文件​

    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
  2. ​启动并自启服务​

    sudo systemctl daemon-reload
    sudo systemctl start tomcat
    sudo systemctl enable tomcat  # 开机自启

🛡️ ​​五、安全加固与权限管理​

  1. ​防火墙配置​

    sudo ufw allow 8080/tcp  # 开放Tomcat默认端口
    sudo ufw allow 80,443/tcp  # 若需反向代理,开放HTTP/HTTPS
    sudo ufw enable
  2. ​限制管理界面访问​

    • 修改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目录下的docsexamples等非必需应用。
  3. ​配置HTTPS加密​
    生成证书并配置server.xml

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               SSLEnabled="true"
               keystoreFile="/path/to/keystore.jks"
               keystorePass="your_password" />

🧪 ​​六、验证与测试​

  1. ​检查服务状态​

    sudo systemctl status tomcat  # 应显示"active (running)"
    tail -f $CATALINA_HOME/logs/catalina.out  # 实时监控日志
  2. ​访问测试页面​
    浏览器打开 http://服务器IP:8080,应显示Tomcat欢迎页。

  3. ​部署测试应用​
    将WAR文件放入webapps/目录,自动部署后访问 http://IP:8080/应用名


⚠️ ​​关键注意事项​

  1. ​权限最小化原则​

    • 禁止以root运行Tomcat,专用用户tomcat仅需/opt/tomcat目录的读写权限。
    • 敏感文件(如conf/tomcat-users.xml)权限设为600:
      sudo chmod 600 $CATALINA_HOME/conf/tomcat-users.xml
  2. ​资源访问配置​

    • 映射本地资源(如图片目录):
      <Context docBase="/path/to/resources" path="/static" />
    • 修改端口:编辑conf/server.xml中的<Connector port>
  3. ​定期维护​

    • 清理日志:$CATALINA_HOME/logs/ 定期归档或删除。
    • 更新版本:关注Apache官网安全公告,及时升级。

💡 ​​故障排查​​:

  • 启动失败:检查java路径、端口冲突(netstat -tunlp|grep 8080)、目录权限。
  • 应用无法访问:确认WAR文件完整性及webapps目录权限(sudo chown tomcat:tomcat webapps)。 

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值