Debian如何部署JSP应用服务器
小樊
34
2025-12-30 10:28:06
在 Debian 上部署 JSP 应用服务器
一 准备环境
- 更新系统并安装 OpenJDK 11(推荐 LTS):
- 命令:sudo apt update && sudo apt install -y openjdk-11-jdk
- 验证:java -version、javac -version
- 正确设置 JAVA_HOME(两种常用方式,二选一或同时配置)
- 全局:编辑 /etc/environment,添加:JAVA_HOME=“/usr/lib/jvm/java-11-openjdk-amd64”
- 用户级:编辑 ~/.bashrc,添加:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64;执行 source ~/.bashrc
- 查找路径:update-alternatives --config java,取 Path 的父目录作为 JAVA_HOME
二 安装与配置 Tomcat
- 方式 A 使用 Debian 软件源安装(运维更简单)
- 安装:sudo apt install -y tomcat9 tomcat9-admin
- 管理:sudo systemctl start|stop|restart|enable tomcat9
- 目录:应用默认部署在 /var/lib/tomcat9/webapps
- 方式 B 手动安装 Apache Tomcat(版本可控,便于自定义)
- 下载与解压(示例为 Tomcat 9.0.76):
- wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.76/bin/apache-tomcat-9.0.76.tar.gz
- sudo tar -zxvf apache-tomcat-9.0.76.tar.gz -C /opt/
- sudo mv /opt/apache-tomcat-9.0.76 /opt/tomcat
- 创建系统用户与权限:
- 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 服务(/etc/systemd/system/tomcat.service):
- [Unit] Description=Apache Tomcat;After=network.target
- [Service] Type=forking;User=tomcat;Group=tomcat
- Environment=“JAVA_HOME=/usr/lib/jvm/default-java”
- Environment=“CATALINA_HOME=/opt/tomcat”;Environment=“CATALINA_BASE=/opt/tomcat”
- ExecStart=/opt/tomcat/bin/startup.sh;ExecStop=/opt/tomcat/bin/shutdown.sh
- Restart=always
- [Install] WantedBy=multi-user.target
- 启动与开机自启:
- sudo systemctl daemon-reload
- sudo systemctl start tomcat;sudo systemctl enable tomcat
- 访问测试:浏览器打开 http://服务器IP:8080,出现 Tomcat 欢迎页即成功
三 部署 JSP 应用
- 自动部署:将应用打包为 WAR,复制到 webapps 目录,Tomcat 会自动解压并部署
- 手动复制:sudo cp your-app.war /var/lib/tomcat9/webapps/(源安装)或 /opt/tomcat/webapps/(手动安装)
- 访问路径:http://服务器IP:8080/your-app
- 管理控制台部署(可选):
- 启用管理应用:编辑 /etc/tomcat9/tomcat-users.xml,添加用户与角色
- 重启:sudo systemctl restart tomcat9
- 访问:http://服务器IP:8080/manager/html 上传 WAR 并部署
四 网络与防火墙
- 开放访问端口(UFW 示例):
- 仅 Tomcat:sudo ufw allow 8080/tcp
- 同时开放 80/443(配合反向代理或后期启用 HTTPS):sudo ufw allow 80/tcp;sudo ufw allow 443/tcp
- 云服务器安全组需同步放行对应端口
五 安全与进阶配置
- 启用 HTTPS(两种方式)
- Tomcat 内置端口 8443:在 /etc/tomcat9/server.xml 的 <Connector port=“8443” …> 中配置 SSL(keystoreFile/keystorePass),重启 Tomcat
- 反向代理 + 证书:使用 Nginx/Apache 终止 TLS,证书可用 Let’s Encrypt/Certbot 自动签发,示例 Nginx 片段:
- location / { proxy_pass http://localhost:8080; 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; }
- 安全加固要点
- 管理端使用强口令、限制来源 IP、隐藏版本信息、及时打补丁
- 运行 Tomcat 的非 root 专用用户(上文已创建 tomcat 用户)
- 性能与内存
- 在 systemd 或 CATALINA_OPTS 中设置堆内存,例如:-Xms512M -Xmx1024M
- 常见问题排查
- 查看日志:/var/log/tomcat9/catalina.out(源安装)或 /opt/tomcat/logs/catalina.out(手动安装)
- 端口占用:ss -tlnp | grep 8080;无法访问时先本地 curl http://127.0.0.1:8080 验证服务是否启动