Nginx gunicorn django реагирует - PullRequest
0 голосов
/ 01 апреля 2020

Нужна помощь с Docker и Nginx. У меня есть веб-сайт, где бэкэнд и фронтенд разделены (django и реагируют) на docker. Они работают без nginx, но сейчас я пытаюсь использовать nginx для прокси-ссылок на нужные порты.
С помощью ссылок ниже я могу получить доступ к двум частям моего сайта:

localhost8000 < this is backend of my website
localhost:3000 < this is frontend of my website

И ниже параметры, которые я хотел бы иметь

localhost\back < this is backend of my website
localhost\front < this is frontend of my website

Ниже приведены мои файлы: docker -compose

version: '3' 
services:
  db:
    image: postgres:9.6-alpine
    environment:
      POSTGRES_DB: db
      POSTGRES_USER: me
      POSTGRES_PASSWORD: mypassword
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
  my_django_web:
    image: my_image_backend
    build: ./backend/django_dashboard
    command: >
      bash -c "
      source ./env.sh &&
      gunicorn django_dashboard.wsgi:application --bind 0.0.0.0:8000 --chdir ./backend/django_dashboard/"
    volumes:
      - .:/code
    expose:
      - 8000
    depends_on:
      - db
    restart: "on-failure"
  nginx:
    build: ./nginx
    ports:
      - 1337:80
    depends_on:
      - my_django_web
  frontend:
    image: my_image_frontend
    build: ./frontend/dashboard
    volumes:
      - ./frontend/dashboard:/code/frontend/dashboard
    ports:
      - "3000:3000"

Dockerfile для nginx, который меняет мой сайт с localhost: 8000 на localhost: 1337

FROM nginx:1.17.4-alpine

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

nginx .conf

upstream my_django{
    server my_django_web:8000;
}

server {
    listen 80;
    server_name something.com;
    location / {
        proxy_pass http://django_dashboard;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
    }
}

nginx .conf, который я пытаюсь создать, поэтому он работает так, как я хочу

upstream my_django {
    server my_django_web:8000;
}

server {
    listen 80;
    server_name something.com;
    location /back {
        rewrite ^/back(.*) /$1 break;
        proxy_pass http://localhost:1337
    }
    location /front {
        rewrite ^/front(.*) /$1 break;
        proxy_pass http://localhost:3000
    }
}

Итак, как мне изменить эти файлы, чтобы они работали так, как я упоминал в начале?
Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...