在新服务器上部署和运行Java项目,需要准备以下核心组件和步骤:
1. 基础环境
-
操作系统
- 根据需求选择Linux(如Ubuntu/CentOS)、Windows Server或macOS。
- 推荐Linux(生产环境常用,资源占用低)。
-
硬件资源
- 根据项目需求配置CPU、内存、磁盘(SSD更佳)和网络带宽。
- 示例:小型项目建议至少2核CPU、4GB内存、50GB磁盘。
2. Java运行时环境(JRE/JDK)
-
JDK版本
- 选择与项目兼容的版本(如Java 8/11/17等,推荐LTS版本)。
- 生产环境建议使用OpenJDK或Oracle JDK(注意许可证)。
-
安装方式
- Linux:通过包管理器安装(如
apt install openjdk-17-jdk)。 - 手动安装:从官网下载并配置环境变量(
JAVA_HOME、PATH)。
- Linux:通过包管理器安装(如
3. 项目部署包
- 打包格式
JAR文件(Spring Boot项目)或WAR文件(传统Java Web项目需搭配Servlet容器)。- 使用构建工具生成(如Maven的
mvn package或Gradle的gradle build)。
4. 依赖服务
-
数据库
- MySQL、PostgreSQL、MongoDB等,根据项目需求安装并配置连接。
- 示例:
sudo apt install mysql-server+ 配置账号密码。
-
缓存/消息队列
- Redis、RabbitMQ、Kafka等(按需选择)。
5. 应用服务器(非Spring Boot项目需要)
- Servlet容器
- Tomcat、Jetty或WildFly(适用于WAR包部署)。
- 示例:安装Tomcat后,将WAR文件放入
webapps目录。
6. 配置与优化
-
JVM参数
- 调整堆内存(
-Xms、-Xmx)、GC策略等(如-XX:+UseG1GC)。 - 示例:
java -Xms512m -Xmx2G -jar your-app.jar。
- 调整堆内存(
-
日志管理
- 配置Logback/Log4j2,日志目录需有写入权限。
- 生产环境建议日志轮转(如
logrotate)。
7. 网络与安全
-
防火墙
- 开放必要端口(如8080、80、443)。
- 示例(Linux):
sudo ufw allow 8080/tcp
-
HTTPS
- 使用Nginx/Apache反向X_X并配置SSL证书(如Let’s Encrypt)。
8. 监控与维护
-
进程管理
- 使用
systemd(Linux)或supervisord守护进程,避免SSH断开后服务停止。 - 示例
systemd单元文件:[Unit] Description=My Java App After=network.target
[Service]
ExecStart=/usr/bin/java -jar /path/to/your-app.jar
User=appuser
Restart=always[Install]
WantedBy=multi-user.target - 使用
-
监控工具
- Prometheus + Grafana(监控JVM指标)、ELK(日志分析)。
9. 其他工具(可选)
- 构建工具:Maven/Gradle(若需在服务器上编译)。
- 版本控制:Git(用于拉取代码)。
- CI/CD:Jenkins/GitHub Actions(自动化部署)。
快速检查清单
- 安装JDK并验证版本:
java -version - 上传项目包(JAR/WAR)到服务器。
- 配置数据库/缓存等依赖服务。
- 启动应用并测试访问:
curl http://localhost:8080 - 设置防火墙和域名解析(如果需要公网访问)。
根据项目复杂度,可能还需配置分布式缓存、负载均衡(如Nginx)或容器化(Docker/K8s)。
云服务器