CentOS 上 Java 应用的远程部署全流程
一 准备与连接
ssh username@服务器公网IP。sudo yum install -y java-1.8.0-openjdk-devel;验证:java -version、javac -version。scp your-app.jar user@ip:/home/youruser/。二 部署 Spring Boot JAR(最常见)
mvn clean package,产物在 target/xxx.jar。java -jar app.jarnohup java -jar app.jar > app.log 2>&1 &java -jar app.jar --spring.profiles.active=prodps -ef | grep javatail -f app.log 或 tail -f nohup.outkill -9 <PID>(先 ps 拿到 PID)三 部署 WAR 到 Tomcat
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.53/bin/apache-tomcat-9.0.53.tar.gz && tar -xvf apache-tomcat-9.0.53.tar.gz -C /usr/local//usr/local/apache-tomcat-9.0.53/bin/startup.shhttp://ip:8080/应用名。sudo yum install -y nginxserver {
listen 80;
server_name your.domain;
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;
}
}
sudo systemctl restart nginx四 网络与防火墙放行
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanentsudo firewall-cmd --reloadsudo firewall-cmd --list-portsapplication.properties 设置 server.address=0.0.0.0,确保可从外部访问。五 生产可用性与自动化建议
/etc/systemd/system/app.service:[Unit]
Description=My Java App
After=network.target
[Service]
Type=simple
User=youruser
ExecStart=/usr/bin/java -jar /home/youruser/app/app.jar --spring.profiles.active=prod
Restart=always
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload、sudo systemctl start app、sudo systemctl enable app、sudo journalctl -u app -f