【问题标题】:NGINX HTTP Request To Linked Container对链接容器的 NGINX HTTP 请求
【发布时间】:2018-11-23 01:15:17
【问题描述】:

这是我的 docker-compose 文件,它在同一主机上启动 NodeJS/PM2 容器和 React/Nginx 容器。

version: '3'
services:
  nodejs:
    image: nodejs_pm2:1.00
    container_name: NODE_CONTAINER
    ports:
      - "8000:8000"
    build:
      context: ./nodejs
      dockerfile: Dockerfile-nodejs
  react:
    image: react_nginx:1.00
    container_name: REACT_CONTAINER
    ports:
      - "3000:3000"
    build:
      context: ./react-app
      dockerfile: Dockerfile-react
    depends_on:
     - nodejs

如您所见,我的react 服务depends_on nodejs。这应该链接容器,对吗?

问题 1) 假设这是真的,向我的节点后端发出 HTTP 请求的正确方法是什么?

这是我尝试对我的 nginx 配置文件执行的操作:

upstream backend {
    server nodejs:8000
  }

  server {
    listen 3000;

    location ~ ^/api/[0-9a-z]+/$ {
      proxy_pass http://backend/;
      include /etc/nginx/proxy_params;
    }

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

这不起作用。事实上,这完全阻止了前端出现。我正在尝试做的是来自我的反应应用程序的axios.get("http://backend/api/*")。我查看了几个 stackoverflow 帖子,但似乎没有一个对我有用。

问题 2) 后续问题,如果连接容器有什么意义 两个容器位于同一主机上,我不能像往常一样向localhost:port 发出请求吗?

【问题讨论】:

    标签: node.js http docker nginx containers


    【解决方案1】:

    您实际上有 3 个问题:

    问题 0 这应该链接容器,对吗?

    不,depends_on 定义了容器依赖(例如,在容器 B 之前等待容器 A 启动),而不是链接

    问题 1 向我的节点后端发出 HTTP 请求的正确方法是什么?

    您的 2 个容器可以使用 container_name 属性相互连接 因此,对于您的 nginx.config,您应该能够通过 NODE_CONTAINER:8000 连接到 nodejs 容器

    问题 2* 如果两个容器位于同一主机上,那么链接容器有什么意义,我不能像往常一样向 localhost:port 发出请求吗?

    请参考这个,它会比我更好地解释容器网络和链接概念https://docs.docker.com/compose/networking/

    【讨论】:

    • 我尝试在我的http请求中做NODE_CONTAINER:8000并得到Failed to load resource: net::ERR_NAME_NOT_RESOLVED
    • 您是从 docker 主机还是从容器内部测试这些连接? - NODE_CONTAINER 只会从容器内部得到解决,因为它们会自动连接到默认的桥接 docker 网络 - http://localhost:8000 有效,因为它在 docker-compose 文件中暴露了该端口 对于故障排除,您可以尝试进入其中容器的: - 检查容器 id 或名称:docker-ps - `docker exec -it /bin/sh
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 2020-10-27
    • 2021-09-14
    • 2017-03-24
    相关资源
    最近更新 更多