代码之家  ›  专栏  ›  技术社区  ›  oudekaas

docker nginx ERR\u NAME\u NOT\u已解析

  •  2
  • oudekaas  · 技术社区  · 8 年前

    运行4个docker容器:服务器/客户端/nginx/mongo反向代理 客户端似乎在端口4200上工作,我可以看到我的应用程序和路由工作。 在尝试注册用户时,我请求在名为“myserver”的Docker容器中发布以下httpclient帖子,该容器应该调用api。 我收到此DNS错误消息。

    在分辨率处查看NGINX容器时。conf(显示127.0.0.11),它是正确的dns Docker,用于解析容器中的dns es。 当我从容器内ping到另一个容器的名称时,它会起作用。 当我从服务器端口3000上的容器内外进行telnet时,它与客户端端口4200上的telnet一样工作 那么,当我试图在我的网站上注册帐户时,无法解析myserver的原因是什么呢。 这几乎就像是从容器外部调用register,因此无法解决它,这是正常行为吗?

      let url = 'http://myserver:3000/api/register';
    

    docker编写。yml公司 版本:“3”

    services:
    
      nginx:
          build: ./nginx
        # Map Nginx port 80 to the local machine's port 80
          volumes:
            - ./dist:/usr/share/nginx/html
          ports:
            - "80:80"
          depends_on: 
            - client
          networks:
            - app-network
       # Build the container using the client Dockerfile
      client:
          build: ./
        # This line maps the contents of the client folder into the container.
          volumes:
            - ./:/usr/src/app
          ports:
             - "4200:4200"
          networks:
            - app-network
    
      myserver:
          build: ./express-server
          volumes:
            - ./express-server:/usr/src/server
          environment:
            - NODE_ENV=development
          depends_on:
            - mongo
          ports:
            - "3000:3000"
          networks:
            - app-network
    
       # Link the client container so that Nginx will have access to it
      mongo:
          environment:
            - AUTH=yes
            - MONGO_INITDB_ROOT_USERNAME=superAdmin
            - MONGO_INITDB_ROOT_PASSWORD=admin123
    
          image: mongo
          volumes:
            - /var/mongodata/data:/data/db
          ports:
            - "27017:27017"
          networks:
            - app-network   
    
    networks:
       app-network:
          driver: bridge
    

    nginx默认值。形态

    worker_processes 2 ;
    
    events {
        worker_connections 1024;
    }
    http {
        upstream my-server {
        server myserver:3000;
        }
    
        upstream client {
        server client:4200;
        }
    
        server {
            
            location / {
                proxy_pass http://client;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
                proxy_set_header X-Forwarded-For $remote_addr;
            }
            location /api/ {
                proxy_pass http://my-server;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
                proxy_set_header X-Forwarded-For $remote_addr;
        }        
        }
    }

    cbdb2e00c6db        meanchat_nginx      "nginx -g 'daemon ..."   15 minutes ago      Up 15 minutes       0.0.0.0:80->80/tcp         meanchat_nginx_1
    22406a1e9a31        meanchat_client     "npm start"              15 minutes ago      Up 15 minutes       0.0.0.0:4200->4200/tcp     meanchat_client_1
    aa024855d201        meanchat_myserver   "npm start"              About an hour ago   Up 15 minutes       0.0.0.0:3000->3000/tcp     meanchat_myserver_1
    b657bd6db7b5        mongo               "docker-entrypoint..."   5 hours ago         Up 15 minutes       0.0.0.0:27017->27017/tcp   b657bd6db7b5_meanchat_mongo_1

    172.20.0.1 - - [09/Jan/2018:00:30:02 +0000] "GET /sockjs-node/info?t=1515457802565 HTTP/1.1" 200 90 "http://localhost/register" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
    172.20.0.1 - - [09/Jan/2018:00:30:03 +0000] "GET /register HTTP/1.1" 304 0 "http://localhost/register" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
    172.20.0.1 - - [09/Jan/2018:00:30:03 +0000] "GET /sockjs-node/044/zh1t2skg/websocket HTTP/1.1" 101 162 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"172.20.0.1 - - [09/Jan/2018:00:30:03 +0000] "GET /inline.bundle.js HTTP/1.1" 304 0 "http://localhost/register" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
    172.20.0.1 - - [09/Jan/2018:00:30:03 +0000] "GET /polyfills.bundle.js HTTP/1.1" 304 0 "http://localhost/register" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
    172.20.0.1 - - [09/Jan/2018:00:30:03 +0000] "GET /vendor.bundle.js HTTP/1.1" 304 0 "http://localhost/register" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
    172.20.0.1 - - [09/Jan/2018:00:30:03 +0000] "GET /styles.bundle.js HTTP/1.1" 304 0 "http://localhost/register" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
    172.20.0.1 - - [09/Jan/2018:00:30:03 +0000] "GET /scripts.bundle.js HTTP/1.1" 304 0 "http://localhost/register" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
    172.20.0.1 - - [09/Jan/2018:00:30:03 +0000] "GET /main.bundle.js HTTP/1.1" 200 796563 "http://localhost/register" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
    172.20.0.1 - - [09/Jan/2018:00:30:06 +0000] "GET /assets/img/cryptoowls.jpg HTTP/1.1" 304 0 "http://localhost/register" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
    172.20.0.1 - - [09/Jan/2018:00:30:06 +0000] "GET /roboto-v15-latin-regular.7e367be02cd17a96d513.woff2 HTTP/1.1" 304 0 "http://localhost/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"
    172.20.0.1 - - [09/Jan/2018:00:30:06 +0000] "GET /sockjs-node/info?t=1515457806564 HTTP/1.1" 200 90 "http://localhost/register" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36"

    172.20.0.1--【2018年1月9日:03:31:24+0000】“获取/sockjs节点/信息?t=1515468684563 HTTP/1.1“200 90” http://localhost/register “”Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/63.0.3239.132 Safari/537.36“

    1 回复  |  直到 8 年前
        1
  •  0
  •   BMitch    8 年前

    评论回复:

    当使用反向代理连接到容器时,应用程序使用的所有URL都需要指向该反向代理,而不是应用程序。通常通过在URL中提供一个不带主机名的路径来实现这一点。如果计划使用基于虚拟路径的反向代理,则需要更进一步,在URL中使用相对路径。这一切都需要在应用程序发送给客户端的响应中发生。

    推荐文章