在Linux上部署Java應用程序通常涉及以下幾個步驟:
mvn clean package
。對于Gradle項目,使用命令 gradle bootJar
。java -version
來檢查Java是否已經安裝。sudo apt update
sudo apt install openjdk-17-jdk
對于CentOS/RHEL系統,使用:sudo yum install java-17-openjdk-devel
scp
或 SFTP
工具將打包好的JAR文件上傳到Linux服務器。java -jar your-project.jar
命令運行項目。這種方式在關閉終端后進程會停止。nohup
命令使進程在后臺運行,并將輸出重定向到日志文件:nohup java -jar your-project.jar > app.log 2>&1 &
--spring.profiles.active
參數:java -jar your-project.jar --spring.profiles.active=prod
systemd
管理服務,實現開機自啟和日志管理。創建一個服務文件 /etc/systemd/system/springboot-app.service
并添加以下內容(根據實際路徑修改):[Unit]
Description=Spring Boot App
After=syslog.target network.target
[Service]
User=your_user
WorkingDirectory=/path/to/deploy
ExecStart=/usr/bin/java -jar /path/to/deploy/your-project.jar
Restart=always
RestartSec=3
Environment="JAVA_OPTS=-Xms512m -Xmx1024m -Dspring.profiles.active=prod"
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reloads
sudo systemctl start springboot-app
sudo systemctl enable springboot-app
sudo systemctl status springboot-app
sudo ufw allow 8080/tcp
sudo firewall-cmd --add-port=8080/tcp --permanents
sudo firewall-cmd --reload
nohup.out
或 app.log
(根據啟動命令)。journalctl
查看:sudo journalctl -u springboot-app -f
application.yml
中配置日志路徑:logging:
file:
path: /var/log/springboot
name: app.log
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
這樣可以通過域名訪問或啟用HTTPS。通過以上步驟,你可以在Linux系統上成功部署Java應用程序。根據具體需求,你可能還需要進行其他配置,如數據庫連接、安全設置等。