温馨提示×

怎样部署debian java服务

小樊
40
2026-10-04 22:20:59
栏目: 编程语言

下面按常见生产场景给你一个清晰、可落地的 Debian 上部署 Java 服务的完整思路。你可以按需选择方式。


一、准备工作

1. 更新系统

sudo apt update && sudo apt upgrade -y

2. 安装 Java(OpenJDK)

常见版本:

  • Java 8:openjdk-8-jdk
  • Java 11(推荐):openjdk-11-jdk
  • Java 17:openjdk-17-jdk

示例(Java 11):

sudo apt install -y openjdk-11-jdk

验证:

java -version

二、上传 Java 服务文件

通常是:

  • xxx.jar(Spring Boot 等)
  • 或 war + Tomcat

假设使用 jar 包方式(最常见):

mkdir -p /opt/myapp
cp myapp.jar /opt/myapp/

三、手动运行(测试用)

cd /opt/myapp
java -jar myapp.jar

测试是否正常启动。


四、使用 systemd 部署(推荐生产)

1. 创建服务文件

sudo vim /etc/systemd/system/myapp.service

示例内容:

[Unit]
Description=My Java App
After=network.target

[Service]
User=appuser
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/java -jar /opt/myapp/myapp.jar
SuccessExitStatus=143
Restart=on-failure

[Install]
WantedBy=multi-user.target

2. 创建专用用户(安全)

sudo useradd -r -s /bin/false appuser
sudo chown -R appuser:appuser /opt/myapp

3. 启动服务

sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp

4. 查看状态

sudo systemctl status myapp
journalctl -u myapp -f

五、配置端口 & 防火墙

例如服务端口是 8080:

sudo ufw allow 8080/tcp

⚠️ 云服务器还要在安全组放行端口。


六、使用 Nginx 反向代理(推荐)

sudo apt install nginx

配置:

sudo vim /etc/nginx/sites-available/myapp
server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }
}

启用:

sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

七、日志管理

  • jar 日志:/opt/myapp/logs
  • systemd 日志:journalctl -u myapp
  • 可配合 logrotate

八、常见补充

指定 JVM 参数

ExecStart=/usr/bin/java -Xms512m -Xmx1024m -jar /opt/myapp/myapp.jar

多环境配置

java -jar myapp.jar --spring.profiles.active=prod

九、如果你用的是 Docker(可选)

FROM openjdk:11
COPY myapp.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

十、总结推荐方案

✅ 生产推荐组合

  • Debian + OpenJDK
  • systemd 管理 Java 服务
  • Nginx 反向代理
  • 防火墙 + 非 root 用户

如果你愿意,可以告诉我:

  • Java 版本(8 / 11 / 17)
  • 是否 Spring Boot
  • 是否 Docker
  • 是否有域名 / HTTPS

我可以给你一份完全针对你项目的部署模板。

0 踩