Неправильное перенаправление NGINX с помощью Docker

Я создаю свой первый проект с Django, NGINX и Docker. Ниже nginx.conf:

upstream project {
    server website:8000;
}
server {
    listen 80;
    server_name MY-DOMAIN;
    location / {
        proxy_pass http://project;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
        client_max_body_size 4G;
    }
    location /static/ {
        alias /app/static-folder/;
    }
    location /media/ {
        alias /app/media-folder/;
    }
}

И docker-compose:

version: '3.7'

services:
  website:
    container_name: web_project
    image: project/django
    build: ./djangodocker
    restart: always
    env_file: prod.env
    command: sh -c "cd djangodocker/ &&
                    gunicorn djangodocker.wsgi:application --bind 0.0.0.0:8000"
    volumes:
      - static-folder:/app/static-folder
      - media-folder:/app/media-folder
    expose:
      - 8000

  nginx:
    container_name: nginx_web_project
    image: project/nginx
    build: ./nginx
    volumes:
      - static-folder:/app/static-folder
      - media-folder:/app/media-folder
    ports:
      - 8000:80
    depends_on:
      - website

volumes:
  static-folder:
  media-folder:

Я могу создать изображение, но я не могу увидеть веб-сайт в правильном url. Я вижу сайт по адресу MY-DOMAIN:8000 вместо MY-DOMAIN, и это моя проблема.

Вы сопоставляете порт nginx с портом 8000 в строке

- 8000:80

в вашем файле docker-compose. Измените его на

- 80:80

Таким образом, nginx прослушивает порт 80 на хост-машине, и вам не нужно указывать номер порта.

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