要配置三个Spring Boot应用并通过Nginx进行反向代理,你可以按照以下步骤操作:
步骤 1: 准备Spring Boot应用
确保每个Spring Boot应用都有不同的端口号。例如,你可以设置第一个应用监听8080端口,第二个监听8081端口,第三个监听8082端口。在每个应用的application.properties
或application.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
目录下。