CentOS Java如何进行远程部署
导读:CentOS 上 Java 应用的远程部署全流程 一 准备与连接 准备一台 CentOS 7/8 云服务器,安装 JDK 8/11/17(推荐 OpenJDK),并准备应用包(Spring Boot 打包为 JAR,传统 Web 应用打包...
CentOS 上 Java 应用的远程部署全流程
一 准备与连接
- 准备一台 CentOS 7/8 云服务器,安装 JDK 8/11/17(推荐 OpenJDK),并准备应用包(Spring Boot 打包为 JAR,传统 Web 应用打包为 WAR)。
- 通过 SSH 远程连接服务器:
ssh username@服务器公网IP。 - 安装 JDK 示例:
sudo yum install -y java-1.8.0-openjdk-devel;验证:java -version、javac -version。 - 如需图形化传文件,可用 WinSCP/Xftp;命令行上传可用 SCP:
scp your-app.jar user@ip:/home/youruser/。 - 云上还需在控制台安全组放行对应端口(如 8080/80/443)。
二 部署 Spring Boot JAR(最常见)
- 打包:在本地使用 Maven 执行
mvn clean package,产物在 target/xxx.jar。 - 上传:将 JAR 传到服务器目录(如 /home/youruser/app/)。
- 启动与后台运行:
- 前台:
java -jar app.jar - 后台:
nohup java -jar app.jar > app.log 2> & 1 &
- 前台:
- 指定环境:
java -jar app.jar --spring.profiles.active=prod - 远程访问:确保应用监听 0.0.0.0(Spring Boot 默认),并在云安全组与系统防火墙放行 8080。
- 常用运维:
- 查看进程:
ps -ef | grep java - 查看日志:
tail -f app.log或tail -f nohup.out - 停止应用:
kill -9 < PID>(先ps拿到 PID)
- 查看进程:
三 部署 WAR 到 Tomcat
- 安装 Tomcat(示例 9.x):
- 下载并解压:
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.sh
- 下载并解压:
- 部署应用:将 WAR 复制到 webapps/,Tomcat 会自动解压部署,访问
http://ip:8080/应用名。 - 可选反向代理(Nginx,端口 80/443):
- 安装:
sudo yum install -y nginx - 配置示例:
server { 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
- 安装:
四 网络与防火墙放行
- firewalld(CentOS 7/8 常用):
- 放行端口:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent - 重新加载:
sudo firewall-cmd --reload - 查看已放行:
sudo firewall-cmd --list-ports
- 放行端口:
- 云安全组:在云厂商控制台放行对应端口(如 8080/80/443),否则外网无法访问。
- Spring Boot 监听地址:在
application.properties设置server.address=0.0.0.0,确保可从外部访问。
五 生产可用性与自动化建议
- 进程托管:使用 systemd 管理 JAR,示例
/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
- 常用命令:
- 自动化与交付:结合 Jenkins + Docker 实现构建、镜像推送与远程部署;Docker 化可提升环境一致性与回滚效率。
- 数据库远程:如应用连接云上 MySQL,需放行 3306,并确保数据库用户权限与网络可达。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Java如何进行远程部署
本文地址: https://pptw.com/jishu/774232.html
