部署 Java 后端服务所需的系统依赖取决于具体技术栈(如 Spring Boot、Quarkus 等)和运行环境,但核心依赖通常包括以下几类:
1. Java 运行时环境(JRE/JDK)
- 必需:至少安装与编译版本兼容的 JRE(生产环境推荐 JRE),开发/构建需 JDK
- 版本要求:根据项目配置选择(如 Java 8/11/17/21)
- 推荐:使用 OpenJDK(如 Eclipse Temurin、Amazon Corretto)或 Oracle JDK
# Ubuntu/Debian 示例
sudo apt update
sudo apt install openjdk-17-jre-headless
# CentOS/RHEL 示例
sudo yum install java-17-openjdk-headless
2. 基础系统工具
- Shell 环境:Bash/Zsh(用于启动脚本)
- 进程管理:Systemd(Linux)、Supervisor 或 PM2(跨平台)
- 日志查看:
tail、journalctl、grep、awk - 网络工具:
curl、netstat/ss、telnet、nc - 文件操作:
tar、zip、rsync
3. Web 服务器与反向X_X(可选但推荐)
- Nginx/Apache:用于静态资源托管、SSL 终止、负载均衡
- 配置示例(Nginx 反向X_X到 Java 应用):
server { listen 80; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
4. 数据库连接支持
- JDBC 驱动:根据数据库类型安装对应驱动(如 MySQL Connector、PostgreSQL JDBC)
- 本地数据库(若应用内嵌):无需额外依赖;若外部部署则需确保网络可达
- 常见场景:
- MySQL:
libmysqlclient-dev或官方 RPM/DEB 包 - PostgreSQL:
postgresql-client - Redis: 单独部署或使用容器
- MySQL:
5. 安全与加密库
- OpenSSL:用于 HTTPS/TLS 支持
- 证书管理:Let’s Encrypt + Certbot(自动签发 SSL 证书)
6. 监控与可观测性(可选)
- JVM 监控:JMX、Prometheus + JMX Exporter
- 日志收集:Filebeat、Fluentd、ELK Stack
- APM 工具:SkyWalking、Pinpoint、New Relic
7. 容器化部署(现代主流方案)
- Docker:打包应用及依赖,实现环境一致性
- Docker Compose:编排多服务(App + DB + Cache)
- Kubernetes:大规模集群管理(需 Helm、kubectl 等)
8. 其他潜在依赖
- 图形库(仅 GUI 相关应用):X11、LibGL(多数后端无需)
- 字体支持:PDF 生成等场景可能需要
fontconfig - 时区数据:
tzdata(避免时间戳错误)
✅ 最小化生产环境清单(Spring Boot + Nginx + MySQL)
| 类别 | 组件 | 命令示例 |
|---|---|---|
| JVM | OpenJDK 17 JRE | apt install openjdk-17-jre-headless |
| Web | Nginx | apt install nginx |
| DB | MySQL Client | apt install default-mysql-client |
| 工具 | curl, tar, vim | apt install curl tar vim |
| 安全 | OpenSSL | apt install openssl |
💡 最佳实践建议:
- 使用容器化部署避免“在我机器上能跑”的问题
- 通过
java -version和ps aux | grep java验证环境- 在 CI/CD 中统一基础镜像(如
eclipse-temurin:17-jre-alpine)- 避免在生产环境安装不必要的开发工具(如 Maven/Gradle)
需要针对特定框架(如 Quarkus、Micronaut)或云厂商(AWS/AliCloud)的优化建议吗?
CLOUD技术笔记