我们在单个 vultr 云实例上有许多应用程序,但是对于具有 SSL 证书的单个 https loadBalancer,它只有一个默认的健康检查。
所以我们使用 nginx 配置多个 /backend URL,指定 http 并使用 docker-compose 运行,以使应用程序在单个网络上运行。
server {
listen 80;
listen [::]:80;
server_name *.example.com;
access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://strapi-container:1337/;
}
location /chat {
proxy_pass http://rocketchat-container:3000;
}
location /auth {
proxy_pass http://keycloak-container:8080;
proxy_set_header Host $host;
}
}
}
后端url分别为http://instance-ip/、http://instance-ip/chat、http://instance-ip/auth
nginx:
image: nginx:1.20
container_name: nginx
ports:
- 80:80
restart: unless-stopped
volumes:
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- strapi-cms
- rocketchat
- keycloak
networks:
- test-network
一切正常,我们可以通过带有上述后端 URL 的 nginx 默认端口 80 访问应用程序。
但我们的意图是以某种方式将 nginx 与 vultr 中的 HTTPS LoadBalancer 连接起来,它应该可以作为
例如:https://qa.example.com/、https://qa.example.com/chat、https://qa.example.com/auth