CentOS7上部署SpringBoot

CentOS 7 上使用 Nginx 部署 Spring Boot 项目涉及几个步骤,包括安装必要的软件、配置 Nginx 作为反向代理、运行 Spring Boot 应用程序以及确保其在后台运行。以下是详细的步骤:

1. 环境准备

1.1 安装 Java

首先,确保您的 CentOS 7 系统上安装了 Java。您可以使用以下命令安装 OpenJDK 11:

1
2
sudo yum update
sudo yum install java-11-openjdk-devel

1.2 安装 Nginx

接下来,安装 Nginx:

1
2
sudo yum install epel-release
sudo yum install nginx

启动并设置 Nginx 在系统启动时自动启动:

1
2
sudo systemctl start nginx
sudo systemctl enable nginx

2. 打包 Spring Boot 项目

在本地开发环境中,使用 Maven 或 Gradle 打包您的 Spring Boot 项目。以 Maven 为例:

1
mvn clean package

这将生成一个 JAR 文件,通常位于 target 目录中(例如 your-application.jar)。

3. 上传 JAR 文件到 CentOS 服务器

使用 SCP 或其他工具将 JAR 文件上传到 CentOS 服务器。

1
scp path/to/your-application.jar user@your-server-ip:/path/to/directory/

4. 设置 Spring Boot 应用程序

4.1 运行 Spring Boot 应用程序

您可以使用 nohup 命令在后台运行 Spring Boot 应用程序。确保您在应用程序目录中,然后运行以下命令:

1
nohup java -jar your-application.jar > /path/to/logfile.log 2>&1 &
  • nohup: 允许您在关闭终端后继续运行应用程序。
  • > /path/to/logfile.log: 将输出重定向到指定的日志文件。
  • 2>&1: 将错误输出重定向到同一日志文件。
  • &: 将任务放入后台运行。

您可以使用 jobs 命令查看后台进程,并使用 fg 将其恢复到前台。

4.2 确保应用程序在重启后自动启动

可以使用 systemd 创建一个服务文件,确保 Spring Boot 应用程序在系统重启后自动启动。

创建一个服务文件:

1
sudo vi /etc/systemd/system/your-application.service

在文件中添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=Your Application
After=network.target

[Service]
User=your-user
ExecStart=/usr/bin/java -jar /path/to/your-application.jar
SuccessExitStatus=143
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
  • your-user 替换为运行应用程序的用户。
  • 确保 ExecStart 指向正确的 JAR 文件路径。

保存并关闭文件后,执行以下命令使服务生效并启动:

1
2
3
sudo systemctl daemon-reload
sudo systemctl start your-application
sudo systemctl enable your-application

5. 配置 Nginx

接下来,配置 Nginx 以反向代理请求到 Spring Boot 应用程序。编辑 Nginx 配置文件:

1
sudo vi /etc/nginx/conf.d/your-application.conf

添加以下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
server {
listen 80;
server_name your-server-ip; # 或域名

location / {
proxy_pass http://localhost:8080; # Spring Boot 默认端口
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $request;
}
}

保存并退出后,测试 Nginx 配置是否正确:

1
sudo nginx -t

如果没有错误,重启 Nginx:

1
sudo systemctl restart nginx

6. 访问您的应用

现在,您的 Spring Boot 应用程序应该可以通过 Nginx 访问。例如,您可以在浏览器中输入 http://your-server-ip 或配置的域名。

总结

通过上述步骤,您应该能够在 CentOS 7 上成功部署 Spring Boot 应用程序,并通过 Nginx 提供服务。确保定期检查应用程序日志,以监控应用程序的运行状态。