在 Debian 下部署 Java 服务,常见方式有以下几种,从简单到生产级逐步介绍,你可以按场景选择。
sudo apt update
sudo apt install -y openjdk-17-jdk
查看版本:
java -version
常见形式:
xxx.jar(Spring Boot 最常见)war(需 Tomcat)假设jar包路径:
/opt/app/myapp.jar
java -jar /opt/app/myapp.jar
后台运行:
nohup java -jar /opt/app/myapp.jar > app.log 2>&1 &
⚠️ 缺点:关机失效,不好管理
sudo vim /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/myapp.jar
SuccessExitStatus=143
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo useradd -r -s /bin/false appuser
sudo chown -R appuser:appuser /opt/app
sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl enable myapp
systemctl status myapp
journalctl -u myapp -f
如果 Java 监听 8080:
sudo apt install nginx
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
sudo nginx -t
sudo systemctl reload nginx
sudo apt install tomcat10
放入:
/var/lib/tomcat10/webapps/
FROM openjdk:17
COPY myapp.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"]
docker build -t myapp .
docker run -d -p 8080:8080 myapp
JAVA_OPTS="-Xms512m -Xmx1024m"
logback / log4j2如果你愿意,可以告诉我:
我可以直接给你一套可复制的部署配置。