在 CentOS 上部署 Java 服务(通常是 Spring Boot 或普通 Java 应用),一般有以下几种常见方式。下面从最常用、最稳妥的方式讲起。
# 查看是否已安装
java -version
# 安装 OpenJDK(推荐 8/11/17)
sudo yum install -y java-11-openjdk-devel
验证:
java -version
常见形式:
xxx.jar(Spring Boot)xxx.war(Tomcat)上传方式:
scp app.jar user@centos_ip:/opt/app/
cd /opt/app
nohup java -jar app.jar > app.log 2>&1 &
查看日志:
tail -f app.log
⚠️ 缺点:服务器重启后不会自动启动
sudo vi /etc/systemd/system/myapp.service
示例内容:
[Unit]
Description=My Java App
After=network.target
[Service]
User=appuser
WorkingDirectory=/opt/app
ExecStart=/usr/bin/java -jar /opt/app/app.jar
SuccessExitStatus=143
Restart=always
[Install]
WantedBy=multi-user.target
sudo useradd -M -s /sbin/nologin appuser
sudo chown -R appuser:appuser /opt/app
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
systemctl status myapp
systemctl restart myapp
journalctl -u myapp -f
✅ 推荐生产环境使用
用户 → Nginx(80) → Java(8080)
sudo yum install -y nginx
sudo systemctl start nginx
sudo vi /etc/nginx/conf.d/myapp.conf
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
}
}
sudo nginx -t
sudo systemctl reload nginx
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
netstat -tunlp | grep 8080
java -Xms512m -Xmx1024m -jar app.jar
systemctl enable myapp
| 场景 | 推荐方式 |
|---|---|
| 测试 | nohup java -jar |
| 生产 | systemd |
| 对外访问 | Nginx + Java |
如果你愿意,可以告诉我:
我可以给你一套完整可直接用的部署方案。