在 CentOS 上搭建 JSP 开发环境的推荐做法
一 准备与安装 Java
- 更新系统并安装 OpenJDK 8 或 11(开发建议安装带有编译器的 devel 包):
- OpenJDK 8:sudo yum install -y java-1.8.0-openjdk-devel
- OpenJDK 11:sudo yum install -y java-11-openjdk-devel
- 验证安装:java -version、javac -version 均应返回版本信息。
- 查找并配置 JAVA_HOME(推荐写入 /etc/profile.d/java.sh,便于维护):
- 查找路径:sudo update-alternatives --config java(记下实际路径,如 /usr/lib/jvm/java-11-openjdk-…)
- 写入配置:
- echo ‘export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-…’ | sudo tee /etc/profile.d/java.sh
- echo ‘export PATH=$JAVA_HOME/bin:$PATH’ | sudo tee -a /etc/profile.d/java.sh
- 使生效:source /etc/profile.d/java.sh
- 说明:Tomcat 9 与 Java 8/11 兼容良好,选择 LTS 版本更稳妥。
二 安装与配置 Tomcat
- 方式 A(推荐,便于更新)手动安装 Apache Tomcat
- 下载并解压(示例为 Tomcat 9):
- wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.73/bin/apache-tomcat-9.0.73.tar.gz
- sudo tar -xvzf apache-tomcat-9.0.73.tar.gz -C /opt
- sudo mv /opt/apache-tomcat-9.0.73 /opt/tomcat
- 配置环境变量(/etc/profile.d/tomcat.sh):
- echo ‘export CATALINA_HOME=/opt/tomcat’ | sudo tee /etc/profile.d/tomcat.sh
- source /etc/profile.d/tomcat.sh
- 启动与验证:
- /opt/tomcat/bin/startup.sh
- 访问:http://服务器IP:8080 出现欢迎页即成功
- 防火墙(firewalld):
- sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
- sudo firewall-cmd --reload
- 方式 B(系统包管理器)安装 Tomcat
- 安装:sudo yum install -y tomcat
- 启动与自启:sudo systemctl start tomcat;sudo systemctl enable tomcat
- 应用目录:/usr/share/tomcat/webapps(WAR 放入即自动部署)
- 提示:若使用云服务器,还需在云平台安全组放行 8080 端口。
三 部署与验证 JSP
- 快速验证(无需额外项目):
- 在 webapps/ROOT 下创建测试页:
- echo ‘<%@ page contentType=“text/html;charset=UTF-8” pageEncoding=“UTF-8”%>
Hello JSP on CentOS
’ | sudo tee /opt/tomcat/webapps/ROOT/test.jsp
- 访问:http://服务器IP:8080/test.jsp
- 正式项目:
- 使用 Maven/Gradle 打成 WAR,上传至 webapps/(或 webapps/ROOT 直接作为根应用),Tomcat 会自动解压部署。
四 作为系统服务运行 Tomcat(推荐)
- 创建 systemd 服务文件:/etc/systemd/system/tomcat.service
-
sudo tee /etc/systemd/system/tomcat.service <<‘EOF’
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-…
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
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
EOF
- 启用与启动:
- sudo systemctl daemon-reload
- sudo systemctl start tomcat
- sudo systemctl enable tomcat
- 注意:如采用系统包安装的 Tomcat,可直接使用 systemctl 管理,无需自建服务。
五 常见问题与优化
- 端口与云安全组:默认 8080;如改用 80/443,需同步调整 firewalld 与云平台安全组规则。
- 目录浏览:为降低风险,建议关闭目录列表,编辑 conf/web.xml:
- JVM 内存:在 CATALINA_OPTS 中设置 -Xms/-Xmx(如 -Xms512M -Xmx1024M),避免频繁 Full GC。
- 生产建议:使用 Nginx/Apache HTTPD 作为反向代理与静态资源服务,Tomcat 专注 Servlet/JSP;按需启用 HTTP/2、压缩与连接池优化。