在一台全新的服务器上部署 Java 项目,需要安装和配置一系列基础环境。以下是常见的必要组件及其作用说明:
1. 操作系统
- 推荐使用:Linux 发行版(如 Ubuntu、CentOS、Debian、AlmaLinux 等)
- 原因:稳定性高、资源占用低、适合生产环境
2. Java 运行环境(JRE)或开发工具包(JDK)
-
JDK(Java Development Kit):推荐安装,包含编译器、调试工具等,适合运行和部署 Java 应用
-
版本选择:
- 根据项目需求选择(如 Java 8、Java 11、Java 17 等)
- 推荐使用长期支持版本(LTS),如 Java 8、Java 11、Java 17
-
安装方式:
# Ubuntu/Debian sudo apt update sudo apt install openjdk-17-jdk # CentOS/RHEL sudo yum install java-17-openjdk-devel -
验证安装:
java -version javac -version
3. 构建工具(可选但常用)
如果项目源码需要编译,需安装构建工具:
Maven
sudo apt install maven # Ubuntu/Debian
sudo yum install maven # CentOS
Gradle(根据项目需求)
# 下载并解压官方二进制包,或使用 SDKMAN 安装
4. 应用服务器 / Web 容器(根据项目类型)
Spring Boot(内嵌 Tomcat):
- 通常打包为
jar文件,直接运行即可:java -jar your-app.jar - 不需要额外安装 Tomcat
传统 WAR 包部署:
- 需要安装 Tomcat 或其他 Servlet 容器
sudo apt install tomcat9 # Ubuntu sudo yum install tomcat # CentOS
5. 数据库(根据项目需求)
常见数据库:
- MySQL / MariaDB
sudo apt install mysql-server - PostgreSQL
sudo apt install postgresql - Redis(缓存)
sudo apt install redis-server - MongoDB(NoSQL)
sudo apt install mongodb
注意:需根据项目
application.properties或application.yml配置数据库连接。
6. 反向X_X与 Web 服务器(可选但推荐)
用于负载均衡、HTTPS、静态资源服务等:
Nginx
sudo apt install nginx
- 配置反向X_X到 Java 应用(如 8080 端口)
Apache HTTP Server
sudo apt install apache2
7. 防火墙与端口开放
确保应用端口可访问(如 8080、8443、443 等):
sudo ufw allow 8080 # Ubuntu
sudo firewall-cmd --add-port=8080/tcp --permanent # CentOS
8. 系统服务管理(推荐)
将 Java 应用注册为系统服务(systemd),实现开机自启、日志管理等:
创建 /etc/systemd/system/myapp.service:
[Unit]
Description=My Java Application
After=network.target
[Service]
Type=simple
User=myuser
ExecStart=/usr/bin/java -jar /opt/myapp/app.jar
Restart=always
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp
9. 监控与日志工具(可选)
- 日志查看:
journalctl -u myapp或日志文件路径 - 进程监控:
top,htop,ps aux | grep java - 外部监控:Prometheus + Grafana、ELK(Elasticsearch, Logstash, Kibana)
10. 安全配置(重要)
- 更新系统补丁:
sudo apt update && sudo apt upgrade - 创建专用用户运行 Java 应用(避免 root)
- 使用 SSL/TLS(Let’s Encrypt 免费证书)
- 配置 SSH 密钥登录,禁用密码登录
总结:最小化部署清单
| 组件 | 是否必需 | 说明 |
|---|---|---|
| 操作系统(Linux) | ✅ | 基础平台 |
| JDK | ✅ | 运行 Java 程序 |
| 数据库 | ⚠️ | 若项目依赖则必须 |
| 构建工具 | ⚠️ | 若需编译源码 |
| 应用容器 | ⚠️ | 如 Tomcat(WAR 包) |
| 反向X_X(Nginx) | ✅ 推荐 | 提升安全性与性能 |
| 防火墙配置 | ✅ | 开放必要端口 |
| systemd 服务 | ✅ 推荐 | 稳定运行 |
✅ 提示:若使用 Docker,则可将上述环境打包成镜像,简化部署流程。
如有具体项目类型(如 Spring Boot、微服务、Maven 多模块等),可进一步细化步骤。
云小栈