在192.168.65.5:53上查找:没有这样的主机。

4

我尝试在 Docker 中运行 Nginx,并将其连接到 Docker 中的一个服务。另外一个服务在 Docker 外部运行,并且也使用这个 Nginx。我的 Docker-compose 文件如下:

version: "3.9"

services:
  nginx:
    restart: always
    image: nginx
    volumes:
      - ./config/nginx.conf:/etc/nginx/nginx.conf:ro
    ports:
      - "3000:80"
      - "9000:81"

  web:
    restart: always
    image: "xxxx/xxxx/web"

并且 nginx 配置在 ./config/nginx.conf 中:

events {}

http{
    upstream ws-api {
        server host.docker.internal:8081;
    }

    upstream ws-web {
        server web;
    }



    server {
        server_name localhost;
        listen      80;
     
        location / {
            include fastcgi_params;
            fastcgi_split_path_info ^(/)(.*)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param SCRIPT_NAME $fastcgi_script_name;
            fastcgi_pass  ws-api;
        }
    }

    server {
        server_name localhost;
        listen      81;
     
        location / {
            include fastcgi_params;
            proxy_pass http://ws-web;
        }

        location /api {
            rewrite        ^([^.]*[^/])$ $1/;
            rewrite        ^/api(.*)$ $1 break;

            include fastcgi_params;
            fastcgi_split_path_info ^(/)(.*)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param SCRIPT_NAME $fastcgi_script_name;
            fastcgi_pass  ws-api;
        }
    }
}

当我打开localhost:9000时,我收到以下错误消息:

在192.168.65.5:53上查找ws-web时出错:无此主机

localhost:3000正常工作

我的错误在哪里?

2个回答

1

我更新到最新的苹果芯片预览版的 Docker 后,问题得到了解决。

这里


0

虽然不是严格的主题,但我在连接我的nginx服务到minikube(docker VM)时遇到了这个神奇的IP响应。我错误地期望服务域名会被minikube的DNS解析为完整的IP:PORT地址。因此,要点是在proxy_pass中添加端口:domain_name:8888; 例如。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接