如何在Linux云服务器上部署Java应用?
常见问题
如何在Linux云服务器上部署Java应用?
2025-04-08 12:22
Linux云服务器
Linux云服务器部署Java应用全攻略:从零到生产环境
在当今云计算时代,越来越多的开发者选择在Linux云服务器上部署Java应用。本文将详细介绍从服务器准备到应用上线的完整流程,包含7个关键步骤和3个优化技巧,助你成为部署专家。
一、环境准备阶段
1.1 服务器选购建议
推荐配置:
- CPU:至少2核(高并发场景建议4核以上)
- 内存:4GB起步(根据应用需求调整)
- 存储:SSD硬盘50GB以上
- 系统:Ubuntu 20.04 LTS或CentOS 7+
1.2 必备软件安装
# Ubuntu/Debian
sudo apt update
sudo apt install -y openjdk-11-jdk maven git nginx
# CentOS/RHEL
sudo yum install -y java-11-openjdk-devel maven git nginx
验证安装:java -version 和 mvn -v
二、应用部署核心流程
2.1 代码打包与传输
Spring Boot项目示例:
mvn clean package
scp target/yourapp.jar user@server_ip:/opt/app/
2.2 服务化运行(Systemd配置)
创建服务文件:/etc/systemd/system/yourapp.service
[Unit]
Description=Your Java Application
After=syslog.target network.target
[Service]
User=appuser
WorkingDirectory=/opt/app
ExecStart=/usr/bin/java -jar -Xms512m -Xmx1024m yourapp.jar
SuccessExitStatus=143
Restart=always
[Install]
WantedBy=multi-user.target
启动命令:
sudo systemctl daemon-reload
sudo systemctl start yourapp
sudo systemctl enable yourapp
三、高级优化技巧
3.1 JVM参数调优
推荐配置模版:
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:InitiatingHeapOccupancyPercent=45
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/var/log/yourapp_heapdump.hprof
3.2 日志管理方案
推荐组合:
- Logback日志框架
- logrotate进行日志轮转
- ELK/EFK日志收集系统
3.3 安全加固措施
必须操作清单:
- 配置SSH密钥登录,禁用密码登录
- 设置防火墙规则(仅开放必要端口)
- 定期更新系统和Java运行时
- 使用非root用户运行应用
四、监控与维护
推荐工具组合:
功能
工具推荐
系统监控
Prometheus + Grafana
应用性能
Arthas/SkyWalking
日志分析
ELK Stack
注意:建议至少每周检查一次系统日志和应用状态,定期进行压力测试。
Linux云服务器部署Java应用全攻略:从零到生产环境
在当今云计算时代,越来越多的开发者选择在Linux云服务器上部署Java应用。本文将详细介绍从服务器准备到应用上线的完整流程,包含7个关键步骤和3个优化技巧,助你成为部署专家。
一、环境准备阶段
1.1 服务器选购建议
推荐配置:
- CPU:至少2核(高并发场景建议4核以上)
- 内存:4GB起步(根据应用需求调整)
- 存储:SSD硬盘50GB以上
- 系统:Ubuntu 20.04 LTS或CentOS 7+
1.2 必备软件安装
# Ubuntu/Debian
sudo apt update
sudo apt install -y openjdk-11-jdk maven git nginx
# CentOS/RHEL
sudo yum install -y java-11-openjdk-devel maven git nginx
验证安装:java -version 和 mvn -v
二、应用部署核心流程
2.1 代码打包与传输
Spring Boot项目示例:
mvn clean package
scp target/yourapp.jar user@server_ip:/opt/app/
2.2 服务化运行(Systemd配置)
创建服务文件:/etc/systemd/system/yourapp.service
[Unit]
Description=Your Java Application
After=syslog.target network.target
[Service]
User=appuser
WorkingDirectory=/opt/app
ExecStart=/usr/bin/java -jar -Xms512m -Xmx1024m yourapp.jar
SuccessExitStatus=143
Restart=always
[Install]
WantedBy=multi-user.target
启动命令:
sudo systemctl daemon-reload
sudo systemctl start yourapp
sudo systemctl enable yourapp
三、高级优化技巧
3.1 JVM参数调优
推荐配置模版:
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
-XX:InitiatingHeapOccupancyPercent=45
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/var/log/yourapp_heapdump.hprof
3.2 日志管理方案
推荐组合:
- Logback日志框架
- logrotate进行日志轮转
- ELK/EFK日志收集系统
3.3 安全加固措施
必须操作清单:
- 配置SSH密钥登录,禁用密码登录
- 设置防火墙规则(仅开放必要端口)
- 定期更新系统和Java运行时
- 使用非root用户运行应用
四、监控与维护
推荐工具组合:
功能
工具推荐
系统监控
Prometheus + Grafana
应用性能
Arthas/SkyWalking
日志分析
ELK Stack
注意:建议至少每周检查一次系统日志和应用状态,定期进行压力测试。
label :
- Linux云服务器
- Java应用部署
- Spring Boot部署
- 莱卡云
