配置三个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目录下。

相关推荐
try2find6 小时前
llama-webui docker实现界面部署
docker·容器·llama
知远同学6 小时前
docker学习笔记2-最佳实践
运维·docker·容器
YUELEI1188 小时前
Centos9 安装 nginx 及配置
nginx·centos
Java后端何哥9 小时前
Docker Compose 和 Kubernetes(k8s)区别
docker·容器·kubernetes
别致的影分身11 小时前
Docker Image(镜像)
运维·docker·容器
NPE~12 小时前
[渗透测试]渗透测试靶场docker搭建 — —全集
网络安全·docker·容器·渗透测试·渗透靶场
神洛华14 小时前
Docker概念详解
运维·docker·容器
007php00714 小时前
Docker Compose 安装Elasticsearch8和kibana和mysql8和redis5 并重置密码的经验与总结
大数据·运维·elasticsearch·搜索引擎·docker·容器·jenkins
城南已开97915 小时前
vue部署到nginx服务器 启用gzip
服务器·vue.js·nginx
꧁༺朝花夕逝༻꧂18 小时前
随机面试--<二>
linux·运维·数据库·nginx·面试