在阿里云服务器上部署多个Spring Boot应用的方法
要在单台阿里云服务器上部署多个Spring Boot应用,有几种常见的方法:
1. 使用不同端口号
最简单的方法是让每个应用使用不同的端口号:
-
修改每个Spring Boot应用的
application.properties或application.yml文件:# 应用1 server.port=8081 # 应用2 server.port=8082 -
分别打包并运行各个应用:
nohup java -jar app1.jar & nohup java -jar app2.jar &
2. 使用Nginx反向X_X
通过Nginx实现基于域名的反向X_X:
-
安装Nginx:
sudo apt-get install nginx -
配置Nginx(
/etc/nginx/conf.d/目录下创建配置文件):# 应用1配置 server { listen 80; server_name app1.yourdomain.com; location / { proxy_pass http://127.0.0.1:8081; proxy_set_header Host $host; } } # 应用2配置 server { listen 80; server_name app2.yourdomain.com; location / { proxy_pass http://127.0.0.1:8082; proxy_set_header Host $host; } } -
重启Nginx:
sudo systemctl restart nginx
3. 使用Docker容器化部署
- 为每个应用创建Dockerfile
-
构建镜像并运行容器:
# 应用1 docker build -t app1 . docker run -d -p 8081:8080 --name app1-container app1 # 应用2 docker build -t app2 . docker run -d -p 8082:8080 --name app2-container app2
4. 使用systemd管理多个服务
-
为每个应用创建service文件(如
/etc/systemd/system/app1.service):[Unit] Description=App1 Spring Boot Service [Service] User=root ExecStart=/usr/bin/java -jar /path/to/app1.jar Restart=always [Install] WantedBy=multi-user.target -
启动并设置开机自启:
systemctl start app1 systemctl enable app1
注意事项
- 确保阿里云安全组开放了所需端口
- 监控服务器资源使用情况,避免内存或CPU过载
- 考虑使用日志管理工具(如logrotate)管理多个应用的日志
- 对于生产环境,建议使用Docker或Kubernetes进行更专业的管理
选择哪种方法取决于您的具体需求、技术栈和运维能力。
云服务器