nginx - Docker Nginx 停止 : [emerg] 1#1: host not found in upstream

标签 nginx docker amazon-ecs

我在 ECS 服务器上运行 docker-nginx。我的 nginx 服务突然停止,因为其中一台服务器的 proxy_pass 无法访问。错误如下:

[emerg] 1#1: host not found in upstream "dev-example.io" in /etc/nginx/conf.d/default.conf:988

我的配置文件如下:

 server {
       listen      80;
       server_name     test.com;
       location / {
          proxy_pass         http://dev-exapmle.io:5016/;
          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;

          client_max_body_size       10m;
          client_body_buffer_size    128k;

          proxy_connect_timeout      90;
          proxy_send_timeout         90;
          proxy_read_timeout         90;

          proxy_buffer_size          4k;
          proxy_buffers              4 32k;
          proxy_busy_buffers_size    64k;
          proxy_temp_file_write_size 64k;
       }
}

server {
   listen       80 default_server;
   server_name  localhost;

   #charset koi8-r;
   #access_log  /var/log/nginx/log/host.access.log  main;

   location / {
      root   /usr/share/nginx/html;
      index  index.html index.htm;
   }

   #error_page  404              /404.html;

   # redirect server error pages to the static page /50x.html
   #
   error_page   500 502 503 504  /50x.html;
   location = /50x.html {
      root   /usr/share/nginx/html;
   }
}

我的配置文件中有很多服务器,即使一台服务器宕机了,我也需要运行 nginx。有什么办法可以解决吗?

任何解决此问题的建议将不胜感激。

最佳答案

仅添加解析器并不能解决我的问题。但是我能够通过为主机使用变量来解决它。 另外,我想在 127.0.0.11 使用 Docker 的 DNS 更有意义(这是一个固定 IP)。

例子:

server {
  listen 80;
  server_name test.com;
  
  location / {
    resolver 127.0.0.11;
    set $example dev-example.io:5016;
    proxy_pass http://$example;
  }
}

我在 this page 上找到了变量解决方法.

关于nginx - Docker Nginx 停止 : [emerg] 1#1: host not found in upstream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42720618/

相关文章:

nginx - 使用Nginx进行Docker动态负载平衡

javascript - 在 nginx 中使用带代理的预渲染

docker - Docker 容器中的 Apache Guacamole : Creation of WebSocket tunnel to guacd failed

amazon-web-services - 使用来自 Lambda 的动态参数启动容器

amazon-ecs - 在 ECS 部署中更新 Docker 镜像

php - 如何阻止客户端IP地址在Cloudflare/Docker/NGINX/LAMP站点中丢失?

Nginx 与 socket.io 内存泄漏

docker - Docker化一个应用

docker - Vagrant 不工作,找不到服务器

amazon-web-services - 我应该使用 AWS Elastic Beanstalk 还是 Amazon EC2 Container Service (ECS) 来扩展 Docker 容器?