Nginx frontend не вызывает Nginx в backend

Итак, я использую Django + react с nginx как на backend, так и на frontend, контейнеризированный в docker. Следующее изображение пояснит, как я хочу обслуживать все приложение:

enter image description here

Погуглил, но не смог разобраться в решениях. Проблема в том, что Nginx на frontend не соединяется с nginx на backend на порту 8082.

Далее следуют файлы docker, nginx и docker-compose.

Конфигурации Nginx для фронтенда:

upstream react {
    server reactapp:3000;
}

server {
    listen 80;
    client_max_body_size 100M;
    proxy_set_header X-Forwarded-Proto $scheme;
    

    location / {
        root /usr/share/nginx/html;
    }   
    
    location /add-to-waiting/ {
        proxy_pass http://0.0.0.0:8082;
    }
}

Dockerfile для react и nginx для frontend:

# build environment
FROM node as build
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json ./
COPY package-lock.json ./
RUN npm i --silent
RUN npm install react-scripts@3.4.1 -g --silent
COPY . ./
RUN npm run build

# production environment
FROM nginx:stable-alpine
COPY --from=build /app/build /usr/share/nginx/html
EXPOSE 80
EXPOSE 443
CMD ["nginx", "-g", "daemon off;"]


docker-compose.yml для фронтенда:

services:
        frontend:
                build: .
                ports:
                        - "8090:80"
                container_name: irisfrontend

Конфигурации Nginx для бэкенда

upstream django {
    server website:8000;
}

server {
    listen 80;
    
    client_max_body_size 100M;
    proxy_set_header X-Forwarded-Proto $scheme;

    location / {
        proxy_pass http://django;
    }
    
    location /media/ {
        alias /app/media/;
    }

    location /static/ {
        alias /app/forex/static/admin/;
    }
}


Dockerfile для nginx в backend:

FROM nginx:1.19.0

COPY ./default.conf /etc/nginx/conf.d/default.conf

Докер-файл для gunicorn в бэкенде:

FROM python:3


ADD requirements.txt /app/requirements.txt

ADD . /app
WORKDIR /app
EXPOSE 8000:8000

RUN pip install --upgrade pip && pip install -r /app/requirements.txt
RUN python manage.py collectstatic --no-input --settings=forex.settings.production

CMD ["gunicorn", "--bind", "0.0.0.0:8000", "--workers", "3", "forex.wsgi:application", "DJANGO_SETTINGS_MODULE=forex.settings.production"]

docker-compose.yml для бэкенда:

services:
    db:
        build: ./db

    website:
        build:
          context: .
          dockerfile: Dockerfile.app
        env_file:
          - env
        container_name: website_container_8
        volumes:
          - static:/app/forex/static/admin/
        depends_on:
          - db  
    nginx:
        build: ./nginx
        volumes:
            - static:/app/forex/static/admin/
        ports:
            - "8082:80"
        depends_on:
            - website
volumes:
  static:

Какие изменения мне нужно сделать, чтобы успешно выполнить post-запрос от frontend nginx к backend nginx?

Создайте сеть для обоих контейнеров, чтобы они могли общаться.

services: db: build: ./db

website:
    build:
      context: .
      dockerfile: Dockerfile.app
    env_file:
      - env
    container_name: website_container_8
    volumes:
      - 
static:/app/forex/static/admin/
    depends_on:
      - db  
networks:
  - nettest 

nginx:
    build: ./nginx
    volumes:
        - 
static:/app/forex/static/admin/
    ports:
        - "8082:80"
    depends_on:
        - website
networks:
  - nettest

volumes:
  static:


networks:
  nettest:
Вернуться на верх