温馨提示×

Debian与Tomcat集成方法

小樊
31
2025-12-06 01:03:31
栏目: 智能运维

Debian与Tomcat集成方法

一 环境准备与安装

  • 更新系统并安装 OpenJDK 11(或系统默认 JDK):sudo apt update && sudo apt install openjdk-11-jdk;验证:java -version。
  • 下载并解压 Apache Tomcat 9(示例版本 9.0.76)到 /opt/tomcat
    wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.tar.gz
    sudo tar -xvf apache-tomcat-9.0.76.tar.gz -C /opt/tomcat --strip-components 1
  • 创建专用系统用户与组(禁止 root 运行):
    sudo groupadd tomcat;sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
  • 设置目录权限:
    sudo chown -R tomcat:tomcat /opt/tomcat;sudo chmod +x /opt/tomcat/bin/*.sh

二 以 systemd 托管 Tomcat 服务

  • 新建服务文件: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/default-java”
    Environment=“CATALINA_PID=/opt/tomcat/temp/tomcat.pid”
    Environment=“CATALINA_HOME=/opt/tomcat”
    Environment=“CATALINA_BASE=/opt/tomcat”
    Environment=‘CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC’
    Environment=‘JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom’
    ExecStart=/opt/tomcat/bin/startup.sh
    ExecStop=/opt/tomcat/bin/shutdown.sh
    Restart=always
    RestartSec=10

    [Install]
    WantedBy=multi-user.target

  • 使配置生效并启动:sudo systemctl daemon-reload;sudo systemctl start tomcat;sudo systemctl enable tomcat

  • 验证:访问 http://服务器IP:8080,出现 Tomcat 欢迎页即成功。

三 部署与发布应用

  • 将应用打包为 WAR 并复制到 /opt/tomcat/webapps
    sudo cp your-app.war /opt/tomcat/webapps/(Tomcat 会自动解压部署)
  • 访问应用:http://服务器IP:8080/your-app
  • 如需从外部访问,放行防火墙端口(UFW):sudo ufw allow 8080/tcp;如使用 ufw 的 Tomcat 应用配置:sudo ufw allow ‘Tomcat Full’(开放 8080/8443)

四 与 Web 服务器集成方式

  • 方式 A(推荐)— Nginx 反向代理与负载均衡
    安装:sudo apt install nginx
    配置示例(/etc/nginx/sites-available/default 或 /etc/nginx/nginx.conf 的 http 段内):
    upstream tomcat_servers { server 127.0.0.1:8080; server 127.0.0.1:8081; }
    server { listen 80; location / { proxy_pass http://tomcat_servers; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
    生效:sudo systemctl restart nginx;浏览器访问服务器 IP 即可经 Nginx 代理到后端 Tomcat(可横向扩展多个实例实现负载均衡)。
  • 方式 B — Apache HTTP Server + mod_jk(AJP)
    安装:sudo apt install apache2 tomcat9 libapache2-mod-jk
    启用模块:sudo a2enmod jk
    配置 workers(/etc/libapache2-mod-jk/workers.properties)指向 Tomcat 的 AJP 8009 端口,并在 Apache 虚拟主机中使用 JkMount 将指定路径转发至后端;重启 Apache 与 Tomcat 生效(适合 Apache 处理静态资源、Tomcat 处理 JSP/Servlet 的场景)。

五 常用配置与安全加固

  • 修改默认端口与字符集:编辑 /opt/tomcat/conf/server.xml 的 <Connector port=“8080” … redirectPort=“8443” />,按需调整端口,并添加 URIEncoding=“UTF-8” 以支持中文。
  • 启用 HTTPS:在同一 上配置 SSLEnabled=“true” 并指定证书与密钥(生产环境建议 8443/TLS)。
  • 管理界面与访问控制:编辑 /opt/tomcat/conf/tomcat-users.xml,按需添加用户与角色(如 manager-gui、admin-gui),并务必使用强口令与访问控制;仅在内网或受控网络开放管理端。
  • JVM 与性能:在 CATALINA_OPTS 中设置堆内存(如 -Xms512M -Xmx1024M)、选择并行 GC,连接器可使用 NIO/NIO2 并调整 maxThreads 等参数以匹配并发需求。

0