部署 Java 项目到 Linux 服务器时,通常需要安装以下基础环境(按必要性排序):
1. JDK(Java Development Kit)
- 作用:运行 Java 程序的核心依赖。
- 版本选择:根据项目需求选择对应版本(如 JDK 8、11、17、21 等),建议与开发/测试环境一致。
-
安装方式示例(以 Ubuntu 为例):
# 安装 OpenJDK 17 sudo apt update sudo apt install openjdk-17-jdk # 验证安装 java -version javac -version💡 生产环境推荐使用 Oracle JDK 或 Adoptium(Eclipse Temurin)以获得更稳定的支持。
2. 系统依赖库(可选但常见)
部分 Java 应用可能依赖以下系统级组件:
libaio1:用于某些数据库驱动(如 MySQL Connector/J 的异步 I/O)。fontconfig,fonts-dejavu:若项目涉及 PDF 生成、图表渲染等图形操作。curl/wget:常用于脚本下载资源或健康检查。vim/nano:文本编辑工具(非必须,但推荐)。
安装示例(Ubuntu/Debian):
sudo apt install libaio1 fontconfig fonts-dejavu curl vim
3. Web 容器或应用服务器(视项目架构而定)
- Spring Boot 内嵌容器:无需额外安装 Tomcat/Jetty,直接运行
java -jar app.jar。 - 传统 WAR 包:需安装独立服务器,如:
- Tomcat:最常用,适合 Servlet/JSP 项目。
# 以 Ubuntu 为例安装 Tomcat 9 sudo apt install tomcat9 tomcat9-admin tomcat9-docs tomcat9-examples - Jetty / Undertow / WildFly:根据框架选型。
- Tomcat:最常用,适合 Servlet/JSP 项目。
4. 辅助工具(提升运维效率)
| 工具 | 用途 |
|---|---|
systemd |
将 Java 应用注册为系统服务,实现开机自启、日志管理、进程守护 |
screen / tmux |
临时调试或后台运行(不推荐长期替代 systemd) |
logrotate |
自动轮转和清理日志文件 |
fail2ban |
安全防护(防止暴力 SSH/应用登录) |
netstat / ss / lsof |
端口监控与故障排查 |
✅ 最佳实践建议
-
使用容器化(Docker):
避免手动安装复杂依赖,通过 Dockerfile 封装完整环境,提升可移植性。FROM eclipse-temurin:17-jre-alpine COPY target/app.jar /app.jar ENTRYPOINT ["java", "-jar", "/app.jar"] -
环境变量配置:
通过.env文件或 systemd 的Environment=参数管理JAVA_OPTS、数据库连接串等敏感信息。 -
权限与安全:
- 创建专用用户(如
javauser)运行应用,避免 root 启动。 - 限制 JVM 内存:
-Xmx512m -Xms256m - 启用 SSL/TLS(如需 HTTPS)。
- 创建专用用户(如
需要我提供某个具体场景的完整部署脚本(如 Spring Boot + Nginx + Systemd)吗?
云服务器