配置三个Spring Boot应用并通过Nginx进行反向代理 讨论中

要配置三个Spring Boot应用并通过Nginx进行反向代理,你可以按照以下步骤操作:

步骤 1: 准备Spring Boot应用

确保每个Spring Boot应用都有不同的端口号。例如,你可以设置第一个应用监听8080端口,第二个监听8081端口,第三个监听8082端口。在每个应用的application.propertiesapplication.yml中配置:

复制代码

Properties

深色版本

复制代码
1# 对于第一个应用
2server.port=8080
3
4# 对于第二个应用
5server.port=8081
6
7# 对于第三个应用
8server.port=8082

然后分别为每个应用构建Docker镜像,使用不同的Dockerfile或者在同一个Dockerfile中通过ARGs参数来区分不同应用的构建。

步骤 2: 准备Nginx配置

编辑Nginx配置文件,使每个Spring Boot应用都有自己的location块。例如:

复制代码

Nginx

深色版本

复制代码
1server {
2    listen       80;
3    server_name  localhost;
4    return       301 https://$host$request_uri;
5}
6
7server {
8    listen 443 ssl;
9    server_name example.com;
10
11    ssl_certificate /etc/nginx/ssl/server.crt;
12    ssl_certificate_key /etc/nginx/ssl/server.key;
13
14    location /app1/ {
15        proxy_pass http://app1:8080;
16        proxy_set_header Host $host;
17        proxy_set_header X-Real-IP $remote_addr;
18        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
19        proxy_set_header X-Forwarded-Proto $scheme;
20    }
21
22    location /app2/ {
23        proxy_pass http://app2:8081;
24        proxy_set_header Host $host;
25        proxy_set_header X-Real-IP $remote_addr;
26        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
27        proxy_set_header X-Forwarded-Proto $scheme;
28    }
29
30    location /app3/ {
31        proxy_pass http://app3:8082;
32        proxy_set_header Host $host;
33        proxy_set_header X-Real-IP $remote_addr;
34        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
35        proxy_set_header X-Forwarded-Proto $scheme;
36    }
37}

在这个配置中,/app1/, /app2/, 和 /app3/ 是访问各个应用的路径前缀。

步骤 3: 创建Docker Compose文件

docker-compose.yml中定义所有服务:

复制代码

Yaml

深色版本

复制代码
1version: '3'
2
3services:
4  nginx:
5    image: nginx
6    container_name: nginx
7    ports:
8      - "80:80"
9      - "443:443"
10    volumes:
11      - ./nginx.conf:/etc/nginx/nginx.conf
12      - ./ssl:/etc/nginx/ssl
13    depends_on:
14      - app1
15      - app2
16      - app3
17
18  app1:
19    image: my-spring-boot-app1
20    container_name: app1
21    environment:
22      - SPRING_PROFILES_ACTIVE=docker
23    expose:
24      - "8080"
25
26  app2:
27    image: my-spring-boot-app2
28    container_name: app2
29    environment:
30      - SPRING_PROFILES_ACTIVE=docker
31    expose:
32      - "8081"
33
34  app3:
35    image: my-spring-boot-app3
36    container_name: app3
37    environment:
38      - SPRING_PROFILES_ACTIVE=docker
39    expose:
40      - "8082"

步骤 4: 部署

运行Docker Compose来启动服务:

复制代码

Bash

深色版本

复制代码
1docker-compose up -d

这样,你就有了三个通过Nginx反向代理的Spring Boot应用,每个应用都运行在不同的容器中,并且可以通过各自的路径前缀访问。记得确保SSL证书和私钥文件正确配置在ssl目录下。

相关推荐
皮皮冰燃5 小时前
docker-18-WSL中安装docker并部署flask服务
docker·容器·flask
少年白char5 小时前
整理上万首音乐后的完整工作流:下载、刮削、播放与避坑指南
docker·nas·musictag·音乐刮削·音乐标签
techdashen10 小时前
Cloudflare 为何抛弃 NGINX,用 Rust 自研了一个代理
运维·nginx·rust
人生匆匆11 小时前
通过nginx解决跨域问题
运维·nginx
萧行之12 小时前
Docker部署Loki+Grafana+Vector实现全服务器日志监控(含N8N/SSH/Fail2ban监控)
服务器·docker·grafana
人工智能培训13 小时前
工程科研中的AI应用:结构力学分析技巧
人工智能·深度学习·机器学习·docker·容器
计算机安禾14 小时前
【Linux从入门到精通】第35篇:容器化技术预备——Docker安装与基本概念
linux·运维·docker
子木HAPPY阳VIP14 小时前
信创UOS,Docker 完整操作部署(Dockerfile部署方式)&排错整合
linux·运维·redis·nginx·docker·容器·tomcat
AI服务老曹15 小时前
架构实战:基于 GB28181 与 RTSP 的异构设备统一接入方案,深度解析 Docker 化 AI 视频管理平台
人工智能·docker·架构
叶总没有会15 小时前
Docker:项目部署
运维·docker·容器