Как справиться с сине-зеленым развертыванием с помощью nginx, docker? - PullRequest
0 голосов
/ 13 сентября 2018

Я хочу развернуть сервер с нулевым временем простоя и сине-зеленым развертыванием.

Я попытался смонтировать файл nginx.conf и каждый раз менять синий и зеленый цвета. Это сработало. но было 8 секунд простоя ... так грустно ...

Я хочу реального развертывания без простоев. поэтому я вернулся к базовым с нескольких серверов в апстриме в nginx.conf

Я думаю, что будут некоторые опции после определения серверов (django-blue и django-green)

это то, что я хочу сделать.

if(django-blue available){
  server = django-blue
}
else{
  server = django-green
}

как я могу решить это? пожалуйста помогите

worker_processes 2;

events { worker_connections 1024; }

http {
        sendfile on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

        gzip on;
    gzip_disable "msie6";

        upstream django {
                server django-blue:7893 (maybe some option);
                server django-green:7893 (maybe some option);
        }

        server {
                listen 80;
                client_max_body_size 100M;
                charset utf-8;
                server_name 192.168.1.230;

                location /static {
                        autoindex on;
                        alias /static;
                        add_header Cache-Control "public";
                }
                location /media {
                        autoindex on;
                        alias /media;
                }

                location / {
                        proxy_pass http://django/;
                        proxy_redirect off;
                        proxy_set_header Host $host;
                        proxy_set_header X-Real-IP $remote_addr;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Forwarded-Host $server_name;
                }

        }

        access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
}
...