spring boot内网部署

1. 准备环境

确保内网中的服务器或机器具备运行 Spring Boot 应用的基本环境:

  • JDK:确保服务器安装了合适版本的 JDK(通常建议使用 Java 8 及以上版本)。
  • Maven/Gradle:根据项目使用的构建工具安装 Maven 或 Gradle。
  • 数据库:如果应用需要连接数据库,确保数据库在内网中可访问,且连接配置正确。

2. 编译 Spring Boot 应用

首先,你需要编译你的 Spring Boot 应用,生成可执行的 JAR 文件。可以通过以下命令在项目目录下执行:

  • Maven 构建命令:
1
2
mvn clean package

  • Gradle 构建命令:
1
./gradlew build

这会在 target/ 或 build/libs/ 目录下生成一个可执行的 JAR 文件,通常名为 your-application-name.jar。

3. 传输 JAR 到内网服务器

将生成的 JAR 文件上传到内网的目标服务器。可以使用各种文件传输工具,比如:

  • SCP(如果服务器支持 SSH):
1
scp your-application-name.jar user@server-ip:/path/to/deploy/
  • FTP 或 SFTP(如果有配置 FTP 服务)。

4. 配置 Spring Boot 应用

在内网部署时,你可能需要根据环境修改配置文件,比如 application.properties 或 application.yml。常见的配置项包括:

  • 数据库连接信息(spring.datasource.url、spring.datasource.username 等)。
  • 日志配置。
  • 服务端口(server.port)。
  • 安全设置(如禁用外部访问,或者设置访问白名单等)。

例如,修改 application.properties 中的数据库配置:

1
2
3
spring.datasource.url=jdbc:mysql://localhost:3306/your_db
spring.datasource.username=db_user
spring.datasource.password=db_password

5. 启动 Spring Boot 应用

在内网服务器上,使用以下命令启动 Spring Boot 应用:

1
java -jar your-application-name.jar

如果你希望应用在后台运行,可以使用 nohup 或者类似的工具:

1
nohup java -jar your-application-name.jar > output.log 2>&1 &

这会将输出重定向到 output.log 文件,并让应用在后台运行。

6. 配置防火墙和网络

  • 确保服务器的防火墙允许访问应用所绑定的端口(默认是 8080)。如果使用其他端口,可以在防火墙中配置允许访问该端口。
  • 如果 Spring Boot 应用需要通过内网的特定 IP 地址或域名访问,确保 DNS 或 hosts 配置正确。

7. 监控和日志

  • 日志:Spring Boot 应用会将日志输出到控制台,你可以将日志配置为输出到文件中进行持久化存储。常见做法是在 application.properties 或 application.yml 中设置日志路径:
1
logging.file.name=/path/to/logs/application.log
  • 监控:可以使用 Spring Boot 的 Actuator 或其他监控工具(如 Prometheus 和 Grafana)来监控应用的运行状态。

8. 设置开机启动(可选)

如果希望应用在服务器重启时自动启动,可以使用 systemd(Linux 系统)或配置为 Windows 服务。

Linux 系统 (Systemd)

创建一个 systemd 服务文件,如 /etc/systemd/system/yourapp.service:

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

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

[Install]
WantedBy=multi-user.target

然后启用并启动服务:

1
2
sudo systemctl enable yourapp
sudo systemctl start yourapp