在 Ubuntu 上部署 Java 服务的实用步骤
一 准备环境
sudo apt update && sudo apt install -y openjdk-11-jdkjava -version、javac -versionupdate-alternatives --config java(复制类似 /usr/lib/jvm/java-11-openjdk-amd64 的路径)echo 'JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"' | sudo tee -a /etc/environmentsource /etc/environmentecho $JAVA_HOME二 打包应用
mvn clean package,产物在 target/your-app.jar./gradlew build,产物在 build/libs/your-app.jarmvn package 生成 target/app.war,后续部署到 Tomcat 等容器。三 部署方式
sudo vim /etc/systemd/system/myapp.service[Unit]
Description=My Java App
After=network.target
[Service]
Type=simple
User=ubuntu
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/java -Xms512m -Xmx1024m -jar /opt/myapp/app.jar
Restart=always
RestartSec=5
Environment="JAVA_OPTS=-Dspring.profiles.active=prod"
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload && sudo systemctl start myappsudo systemctl enable myappsudo systemctl status myapp、sudo journalctl -u myapp -fsudo apt install -y tomcat9sudo systemctl start|stop|restart tomcat9 管理服务FROM eclipse-temurin:17-jre-alpine AS runtime
WORKDIR /app
COPY target/app.jar /app/app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app/app.jar"]
docker build -t myapp:1.0 .docker run -d -p 8080:8080 --name myapp myapp:1.0docker logs -f myapp四 网络与反向代理
sudo ufw allow 8080/tcpserver {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
五 运维与安全要点
journalctl -u myapp -f-Xms 与 -Xmx(如 -Xms512m -Xmx1024m)/actuator/health