Я пытаюсь сбалансировать запрос между двумя контейнерами докеров, запущенными под scale
режим и выделенные порты:
version: '2'
services:
nginx:
image: 'bitnami/nginx:latest'
depends_on:
- phpfpm
- nodejs
networks:
- app-tier
ports:
- 8000:8000
volumes:
- ./nginx/vhost.conf:/opt/bitnami/nginx/conf/server_blocks/vhost.conf
nodejs:
image: 'node:12.16.2-alpine'
command: "npm serve'"
ports:
- 4200
volumes:
- ../node/:/app
networks:
- app-tier
networks:
app-tier:
driver: bridge
И добавьте прокси nginx и сделайте запрос прокси, используя внутренний хост и порт nodejs
:
server {
listen 0.0.0.0:8000;
location / {
proxy_pass http://nodejs:4200;
}
}
Контейнеры:
dfc75a7f4f2d node:12.16.2-alpine "docker-entrypoint.sh" 21 minutes ago Up 21 minutes 0.0.0.0:32783->4200/tcp docker_nodejs_2
759477246adf bitnami/nginx:latest "/entrypoint.sh /run." 25 minutes ago Up 25 minutes 8080/tcp, 0.0.0.0:8000->8000/tcp, 8443/tcp docker_nginx_1
75def14e0a35 node:12.16.2-alpine "docker-entrypoint.sh" 5 hours ago Up 25 minutes 0.0.0.0:32781->4200/tcp docker_nodejs_1
Сначала я бегу один nodejs
контейнер с использованием docker-compose up
затем попробуйте масштабировать с помощью текущей команды
docker-compose up --scale nodejs=2
Так что в этом случае у меня работает только один nodejs
сервис, а второй (который был запущен позже) не ответил ни на один запрос от nginx
. Как я могу это исправить или запрос отладки и балансировки http://nodejs:4200
между scale
экземпляры