Как я могу получить докеры nginx для быстрого переключения при сбое одного из вышеперечисленных контейнеров? Отказоустойчивость кажется мгновенной в среде, отличной от докеров, но несколько запросов на тайм-аут при докеризации.Как быстро отказоустойчивый nginx upstream-контейнеры в докере (развертывание синим/зеленым цветом)
Я использую nginx в качестве балансировщика нагрузки/прокси на одном узле/vm перед двумя экземплярами одного и того же узла. Я представил новые развертывания версии идти следующим образом (часто называют blue-green deployments):
- Новой версия приложения узла толкнула GitHub
- Docker хаба создает новый образ
- Один из входных контейнеров снесен , модернизированные и перераспределены
- Как один из контейнеров снесен, Nginx автоматически переключается на другой живой контейнер
- После модернизированный контейнер развернут, другой контейнер в автономном режиме для обновления/передислокации, а также
Однако, на nginx не без проблем делайте # 4. Когда я сниму один из вышеперечисленных контейнеров для версии bump, nginx будет тайм-аут нескольких запросов (в круговом режиме), поскольку он показывает, что один из контейнеров не работает. У меня этого не было в среде без докеров.
Вот мой докер облако стек файл:
load-balancer:
image: 'foo/load-balancer:latest'
links:
- node-blue
- node-green
ports:
- '80:80'
node-blue:
image: 'foo/node-app:latest'
node-green:
image: 'foo/node-app:latest'
nginx.conf выглядит следующим образом:
events {
worker_connections 1024;
}
http {
gzip on;
upstream app {
server node-green;
server node-blue;
}
server {
listen 80;
server_name app.local;
location/{
proxy_pass http://app;
}
}
}
Хм ... это может быть то, что я m ищу: http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/ –