403 Forbidden nginx/1.18.0 (Ubuntu) для Django 3.1, проблема в медиафайлах и admin css

У меня есть django 3.1, установленный на digitalocean ubuntu 20.04 и nginx/1.18.0 (Ubuntu) и использующий остальные API

Ниже приведены мои настройки статических и медиафайлов.

STATIC_URL = '/static/'
STATICFILES_DIRS = [
  BASE_DIR / "static",
]

STATIC_ROOT = BASE_DIR / 'static_in_env'

MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'

Ниже приведена моя конференция Digital Ocean Nginx Conf.

location /static/ {
    root /home/username/backend/src;
}

location /media {
    root /home/username/backend/src;
}

это дает мне запрет даже на файлы менее 100 КБ.

Также после проверки журналов Nginx я обнаружил, что ошибка отказа в доступе.


person Harsh Sonawane    schedule 26.04.2021    source источник
comment
/home/username есть ли у nginx доступ к этой домашней папке пользователя?   -  person Ivan Starostin    schedule 26.04.2021


Ответы (4)


Привет, Харш Сонаван, попробуй поставить косую черту после таких медиа.

location /media/ {
    root /home/username/backend/src;
}
person Ankit Tiwari    schedule 26.04.2021

Похоже, ваша конфигурация в порядке.
Вам следует проверить, что вы установили NGINX в качестве пользователя root или пользователя, имеющего доступ к файлам, которые вы пытаетесь служить.

person NetanMangal    schedule 26.04.2021

Пожалуйста, попробуй:

location /static/ {
    root /home/username/backend/src/static/;
}
location /media/ {
    root /home/username/backend/src/media/;
}

если это не сработает, попробуйте изменить root на псевдоним следующим образом:

location /static/ {
    alias /home/username/backend/src/static/;
}
location /media/ {
    alias /home/username/backend/src/media/;
}
person HLX Studios    schedule 26.04.2021

Я решил эту ошибку:

Первый:- chmod -R 777 media (вне папки мультимедиа)

Второй:- в /etc/nginx/sites-available/project.conf

location /static/ {

    root /home/username/project;
}
location /media/ {

    root /home/username/project;

}

to

location /static/ {

    alias /home/username/project/static/;
}
location /media/ {

    alias /home/username/project/media/;
}

Третье: перезагрузите файл службы и nginx.

sudo systemd перезапустить проект.сервис

sudo systemd перезапустить nginx

person MULTI ROUNDER indori mr    schedule 23.07.2021