Py学习  »  NGINX

服务重置时NGINX需要重新启动

Paul Grimshaw • 4 年前 • 452 次点击  

但是我们有一个问题,每次我们重启/更新或以其他方式关闭swarm服务时,NGINX都会返回 502 Bad Gateway . NGINX随后继续为 502

下面是我们的NGINX配置:

events {}
http {
  fastcgi_buffers 16 16k;
  fastcgi_buffer_size 32k;
  client_max_body_size 20M;

  large_client_header_buffers 8 256k;
  client_header_buffer_size 256k;

  proxy_buffer_size          128k;
  proxy_buffers              4 256k;
  proxy_busy_buffers_size    256k;

  map $host $client {
     default clientname;
  }

  #Healthcheck
  server {
    listen 443;
    listen 444;
    location /is-healthy {
      access_log off;
      return 200;
    }
  }

 #Example service:
  server {
     listen 443;
     server_name scheduler.clientname.com;

     location / {
        resolver 127.0.0.11 ipv6=off;
        proxy_pass http://$client-scheduler:60911;
        proxy_http_version 1.1;

        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
     }
  }

  #catchll 
  server {
     listen 443;
     listen 444;
     server_name _;

     location / {     
         return 404 'Page not found';
     }
  }
}

我们使用$client占位符,否则当一个服务关闭时我们甚至无法启动nginx。

我们做错什么了?

更新

我们目前正在寻找一个替代品,因为这可以设置为 default-server init-addr none 在启动时停止故障。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/54762
 
452 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Tubc
Reply   •   1 楼
Tubc    4 年前

我是这样做的,创建一个上游,max_fails=0

    upstream docker-api {
        server docker.api:80 max_fails=0;
    }


    # load configs
    server {
        listen 80;
        listen [::]:80;

        server_name localhost;

        location /api {
            proxy_pass http://docker-api;
            proxy_http_version  1.1;
            proxy_cache_bypass  $http_upgrade;

            # Others config...
        }

    }