Django, как обслуживать медиафайлы (пользователи) с помощью nginx? - PullRequest
0 голосов
/ 26 ноября 2018

Я борюсь с моей конфигурацией nginx.Используя docker-compose, я развернул свое приложение Django на vps.Статические файлы работают нормально, но я не могу правильно настроить медиа-файлы.Ниже приведены мои файлы conf:

setting.py:

STATIC_URL = '/static/'
STATIC_ROOT = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MEDIA_URL = '/media/'

Файл nginx conf:

upstream web {
  ip_hash;
  server web:8000;
}

# portal
server {
    location /static/ {
        autoindex on;
        alias /static/;
    }
    location /media/ {
        autoindex on;
        alias /home/www/book_store/media/;
    }
    location / {
        proxy_pass http://web/;
    }
    listen 8000;
    server_name localhost;
}

docker-compose.yml

version: '2.1'

services:
  nginx:
    #other commands
    volumes:
      - .:/code
      - ./nginx:/etc/nginx/conf.d
      - /static:/static
      - /media:/media
    depends_on:
      - web
 web:
    #other commands
    volumes:
      - .:/code
      - /static:/static
      - /media:/media

сообщение об ошибке при попытке приложения получить доступ к мультимедийному файлу (сообщение из контейнера nginx):

ng01 |2018/11/26 15:52:37 [ошибка] 5 # 5: * 6 open () «/home/www/book_store/media/default.png» не удалось (2: нет такого файла или каталога), клиент: XX.XX.XXX.XXX, сервер: localhost, запрос: «GET /media/default.png HTTP / 1.1», хост: «XXX.XXX.XX.XXX:8000», реферер: «http://XXX.XXX.XX.XXXX:8000/users/user/profile/"

...