当前位置: 首页 > 面试题库 >

Docker Nginx已停止:[emerg] 1#1:在上游找不到主机

巴英韶
2023-03-14
问题内容

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

[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。有什么办法可以解决?

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


问题答案:

包含以防止Nginx在您的站点关闭时崩溃,请包含一个resolver指令,如下所示:

 server {
       listen      80;
       server_name     test.com;
       location / {
          resolver 8.8.8.8
          proxy_pass         http://dev-exapmle.io:5016/;
          proxy_redirect     off;
 ...

警告!使用公共DNS会对您的后端造成安全风险,因为您的DNS请求可能会被欺骗。如果这是一个问题,则应将解析器指向安全的DNS服务器。



 类似资料:
  • 问题内容: 我最近开始迁移到Docker 1.9和Docker-Compose 1.5的网络功能,以使用链接进行替换。 到目前为止,链接没有问题,nginx通过docker-compose连接到我的php5-fpm fastcgi服务器,该服务器位于一组中的另一台服务器中。新近,虽然当我运行php- fpm时,mongo和nginx容器启动,但是nginx随即退出 但是,如果我在运行php和mon

  • 我最近开始迁移到Docker1.9和Docker-Compose1.5的网络功能,以取代使用链接。 到目前为止,使用链接,nginx通过docker-compose连接到我的php5-fpm fastcgi服务器(位于一个组中的不同服务器上)没有任何问题。最近,当我运行时,我的php-fpm、mongo和nginx容器启动了,但是nginx却以中的上游“waapi_php_1”中找不到主机而立即退

  • 我试图在docker容器中调出我的MySql。但是,它在代码退出(1)的情况下停止了。下面是我的运行方式: 这是容器的日志 请帮帮我...

  • 类型异常报告 servlet Jersey REST服务的消息servlet.init()引发异常 说明服务器遇到内部错误,导致它无法完成此请求。 java.lang.IllegalStateException:找不到InjectionManagerFactory。org.glassfish.jersey.internal.inject.injections.lookupinjectionmana

  • 我已经在新安装cpanel VPS上安装了nginxadmin。当我尝试登录到域时,我有504个超时。下面是我的日志和配置。 日志---------------- 我一卸载nginxadmin,一切就恢复正常了。

  • 问题内容: 我已经使用flask Web框架为我的体育俱乐部编写了一个Web应用程序。我使用内置的测试服务器在本地计算机上进行了所有操作。 知道他们告诉我将其部署在1&1共享托管Web空间上。它们具有python支持,但似乎只允许CGI运行python脚本。 直到现在我都忽略了重写内容。对我的CGI脚本的所有请求均导致404错误。我在应用程序中修改了404处理程序以返回request.path。当