Я хочу развернуть сервер с нулевым временем простоя и сине-зеленым развертыванием.
Я попытался смонтировать файл 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;
}