docker-compose中nginx的多个主机之间的通信

时间:2018-06-27 15:04:24

标签: docker nginx docker-compose

我有一个像这样的docker-compose:

version: "3"

networks:
  LEMP:

services:
  nginx:
    image: nginx:latest
    ports:
      - "8080:80"
      - "80:80"
      - "443:443"
      - "3333:3333"
    volumes:
      - /var/www:/var/www
      - ./nginx-conf/server1.local.conf:/etc/nginx/conf.d/server1.local.conf
      - ./nginx-conf/server2.local.conf:/etc/nginx/conf.d/server2.local.conf
    depends_on:
      - php
    networks:
      - LEMP
    extra_hosts:
      - "server1.local:127.0.0.1"
      - "server2.local:127.0.0.1"
  php:
    build: ./php
    restart: always
    volumes:
      - /var/www:/var/www
    ports:
      - "9000:9000"
    networks:
      - LEMP
  mysql:
    image: mysql:5.7
    restart: always
    ports:
      - "3306:3306"
    depends_on:
      - nginx
    environment:
      - MYSQL_ROOT_PASSWORD=my_password
    volumes:
      - db:/var/lib/mysql
    networks:
      - LEMP
  redis:
    image: redis:alpine
    restart: always
    ports:
      - "6379:6379"
    networks:
      - LEMP

volumes:
  db:

PHP Dockerfile:

FROM php:7.1-fpm

RUN docker-php-ext-install pdo pdo_mysql

WORKDIR /var/www

如果我尝试从浏览器/邮递员到达server1.local或server2.local,则它可以正常工作,但是,如果我尝试从server1.local到达server2.local(REST api),则无法访问。 / p>

我读了this discussion,但由于配置将共享给其他同事,因此我当然不能使用PC IP。
我知道nginx-proxy,但是这最后一个需要在项目所在的地方设置其他服务,但是在我的情况下,我只有git项目存储在/ var / www /中,所以我应该如何从/ var /中的文件夹开始设置它们万维网?例如,server2.local同时具有php和用于本地主机(localhost:3333)的内部反向代理。我应该从php映像开始,安装node.js / pm2,然后运行它们等等吗?对我来说似乎有点奇怪。

0 个答案:

没有答案