温馨提示×

Linux Tomcat配置指南

小樊
52
2025-10-27 08:27:11
栏目: 智能运维

Linux下Tomcat配置指南

1. 准备工作

在配置Tomcat前,需完成以下基础准备:

  • 安装JDK:Tomcat依赖Java环境,需先安装JDK(建议版本1.8及以上)。通过java -version命令验证安装,若未安装,可使用包管理器(如aptyum)安装OpenJDK:sudo apt install openjdk-11-jdk(Ubuntu/Debian)或sudo yum install java-11-openjdk-devel(CentOS/RHEL)。
  • 下载Tomcat:从Apache Tomcat官网下载Linux版本tar.gz包(如Tomcat 10.1.20),选择与系统架构匹配的版本(如x86_64)。

2. 安装Tomcat

  • 解压文件:将下载的tar.gz包解压到目标目录(推荐/opt,需root权限):
    sudo tar -zxvf apache-tomcat-10.1.20.tar.gz -C /opt
  • 重命名目录(可选):为便于管理,可将解压后的目录重命名为tomcat
    sudo mv /opt/apache-tomcat-10.1.20 /opt/tomcat
  • 设置可执行权限:为Tomcat的启动脚本添加执行权限:
    sudo chmod +x /opt/tomcat/bin/*.sh

3. 配置环境变量

为了让系统识别Tomcat命令(如startup.shshutdown.sh),需配置环境变量:

  • 编辑配置文件:打开用户级的~/.bashrc(或系统级的/etc/profile)文件:
    nano ~/.bashrc
  • 添加变量:在文件末尾添加以下内容(根据实际路径调整):
    export CATALINA_HOME=/opt/tomcat  # Tomcat安装目录
    export PATH=$PATH:$CATALINA_HOME/bin  # 将Tomcat bin目录加入PATH
    
  • 生效配置:运行source ~/.bashrc使变量立即生效。可通过echo $CATALINA_HOME验证是否配置成功。

4. 创建专用Tomcat用户

为提升安全性,禁止以root用户运行Tomcat,需创建专用用户和组:

  • 创建组sudo groupadd tomcat
  • 创建用户sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat-s /bin/false禁止登录,-d指定家目录)
  • 设置目录权限:将Tomcat目录的所有权赋予tomcat用户和组,并设置合理权限:
    sudo chown -R tomcat:tomcat /opt/tomcat  # 所有权转移
    sudo chmod -R 755 /opt/tomcat  # 目录权限(所有者可读写执行,组和其他用户可读执行)
    sudo chmod -R g+r /opt/tomcat/conf  # 配置文件需组可读
    sudo chmod -R g+w /opt/tomcat/logs /opt/tomcat/temp /opt/tomcat/webapps /opt/tomcat/work  # 日志、临时目录等需组可写
    

5. 配置Tomcat核心参数

5.1 修改server.xml(端口与SSL)

server.xml是Tomcat的核心配置文件,位于/opt/tomcat/conf/目录,主要修改以下内容:

  • 修改HTTP端口:默认端口为8080,可根据需求修改(如改为80,需root权限):
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" 
               URIEncoding="UTF-8" />  <!-- 解决中文乱码 -->
    
  • 启用HTTPS:在<Service>标签内添加SSL Connector(需提前准备keystore文件):
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="/path/to/keystore.jks"
                         type="RSA" 
                         certificateKeystorePassword="your_keystore_password"
                         certificateKeyAlias="your_key_alias" />
        </SSLHostConfig>
    </Connector>
    
  • 配置访问日志:在<Host>标签内添加AccessLogValve,记录访问信息:
    <Valve className="org.apache.catalina.valves.AccessLogValve"
           directory="logs"
           prefix="localhost_access_log"
           suffix=".txt"
           pattern="%h %l %u %t "%r" %s %b" />  <!-- 常用格式 -->
    

5.2 配置内存参数

修改catalina.sh(位于/opt/tomcat/bin/),设置JVM内存大小(根据服务器配置调整):
在文件开头添加:

export JAVA_OPTS="-Xms512M -Xmx1024M -XX:+UseG1GC"  # 初始内存512M,最大内存1024M,使用G1垃圾回收器

6. 配置Tomcat用户权限

编辑tomcat-users.xml(位于/opt/tomcat/conf/),添加用户及角色(用于管理界面访问):

<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
    <role rolename="manager-gui"/>  <!-- 管理界面访问权限 -->
    <role rolename="admin-gui"/>    <!-- 管理操作权限 -->
    <user username="admin" password="strong_password" roles="manager-gui,admin-gui"/>  <!-- 用户及角色绑定 -->
</tomcat-users>

修改后需重启Tomcat使配置生效。

7. 启动与停止Tomcat

  • 启动Tomcat:切换到tomcat用户,执行启动脚本:
    sudo -u tomcat /opt/tomcat/bin/startup.sh
  • 停止Tomcat
    sudo -u tomcat /opt/tomcat/bin/shutdown.sh
  • 验证运行:在浏览器输入http://服务器IP:8080,若看到Tomcat欢迎页面,说明启动成功。

8. 设置开机自启

为了让Tomcat随系统启动自动运行,需创建systemd服务:

  • 创建服务文件sudo nano /etc/systemd/system/tomcat.service
  • 添加内容(根据实际路径调整):
    [Unit]
    Description=Apache Tomcat Web Application Container
    After=network.target
    
    [Service]
    Type=forking
    User=tomcat
    Group=tomcat
    Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"  # JDK路径
    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
    
    [Install]
    WantedBy=multi-user.target
    
  • 加载服务sudo systemctl daemon-reload
  • 设置开机自启sudo systemctl enable tomcat
  • 启动服务sudo systemctl start tomcat
  • 查看状态sudo systemctl status tomcat(若显示“active (running)”,则启动成功)。

9. 安全加固

  • 禁用默认管理界面:若不需要默认的管理界面,可删除或重命名webapps/managerwebapps/host-manager目录。
  • 限制访问IP:通过防火墙(如ufwiptables)限制Tomcat端口的访问,仅允许可信IP访问:
    sudo ufw allow from 192.168.1.100 to any port 8080  # 仅允许192.168.1.100访问8080端口
    sudo ufw enable  # 启用防火墙
    
  • 定期更新:定期检查Tomcat官网,升级到最新稳定版本,修复安全漏洞。

以上步骤覆盖了Linux下Tomcat的核心配置,可根据实际需求调整端口、内存、用户权限等参数。配置完成后,即可通过Tomcat部署Java Web应用。

0