【发布时间】:2021-02-02 00:16:14
【问题描述】:
我想更好地理解这个过程,但在这里找不到解释。
我有一个app 应用程序,它将容器 ID 打印为/ 上的 http 响应,类似于 jwilder/whoami 图像。
我在 compose 上使用 --scale app=2 使用 nginx 对这个应用程序进行负载平衡。它使用 Nginx 的默认 Round-Robin 方法在 2 个(或 N 个)应用程序之间正确循环。
Docker 和 Nginx 究竟如何解析和负载均衡 nginx-conf 中的 http://app/ URL?
编辑:更具体地说,nginx如何知道http://app/主机名后面有2个ip地址。
docker-compose.yml
version: "3.9"
services:
app:
build:
context: ./Dockerfile
dockerfile: Dockerfile-Application
expose:
- "80"
networks:
- application-net
loadbalancer:
image: nginx:latest
depends_on:
- app
ports:
- "80:80"
volumes:
- ./cfg/nginx.conf:/etc/nginx/nginx.conf:ro
networks:
- application-net
networks:
application-net:
ipam:
driver: default
config:
- subnet: "10.150.1.0/24"
nginx.conf
user nginx;
events {
worker_connections 1000;
}
http {
server {
listen 80;
location / {
proxy_pass http://app:80/;
}
}
}
【问题讨论】:
标签: docker nginx docker-compose load-balancing