前言
在企业级应用开发中,常常需要在同一台Linux服务器上部署多个Spring Boot项目。本文将详细介绍如何在Linux环境下高效部署多个Spring Boot应用,并通过Nginx实现负载均衡,涵盖环境准备、端口规划、服务管理、反向代理配置等关键环节。
一、环境准备与基础配置
1. 系统初始化
# CentOS初始化
yum update -y
yum install -y vim wget git net-tools ntp
systemctl enable ntpd
systemctl start ntpd
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
# Ubuntu初始化
apt update -y
apt upgrade -y
apt install -y vim wget git net-tools ntp
systemctl enable ntp
systemctl start ntp
timedatectl set-timezone Asia/Shanghai
2. JDK安装与配置
# 安装OpenJDK 17
yum install -y java-17-openjdk-devel # CentOS
apt install -y openjdk-17-jdk # Ubuntu
# 配置环境变量
echo 'export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64' >> /etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
source /etc/profile
# 验证安装
java -version
二、项目规划与端口分配
1. 项目结构设计
/opt/
├── app1/
│ ├── app1.jar
│ ├── config/
│ └── logs/
├── app2/
│ ├── app2.jar
│ ├── config/
│ └── logs/
└── app3/
├── app3.jar
├── config/
└── logs/
2. 端口分配方案
项目名称 | 应用端口 | 管理端口 |
---|---|---|
app1 | 8081 | 9081 |
app2 | 8082 | 9082 |
app3 | 8083 | 9083 |
三、多项目部署与服务化
1. 项目1部署示例
# 创建项目目录
mkdir -p /opt/app1/{
config,logs}
chown -R app:app /opt/app1
# 上传JAR包
scp target/app1.jar app@server:/opt/app1/
# 配置application.properties
vim /opt/app1/config/application.properties
# 应用配置
server.port=8081
management.server.port=9081
spring.config.location=file:/opt/app1/config/
2. 创建Systemd服务
# 创建app1服务
vim /etc/systemd/system/app1.service
</