Django получает 404 ошибку при попытке загрузить файлы из MinIO на том же сервере

Я установил веб-приложение Django (Django version 5.0.6) на операционной системе Ubuntu 22.04 LTS с файловой системой бэкенда по умолчанию MinIO 2024-08-03T04-33-23Z. Все службы работают с использованием HTTPS. Мое веб-приложение Django настроено на работу с Gunicorn version 22.0.0 и Nginx version 1.26.2

Мои настройки Django приведены ниже.

ALLOWED_HOSTS = [
       'localhost',
       '127.0.0.1',
       [subdomain_ip],
       'subdomain.domain.org'
]

CSRF_TRUSTED_ORIGINS = [f'https://{host}' for host in ALLOWED_HOSTS]
CSRF_ALLOWED_ORIGINS = [f'https://{host}' for host in ALLOWED_HOSTS]
CORS_ORIGINS_WHITELIST = [f'https://{host}' for host in ALLOWED_HOSTS]



INTERNAL_IPS = ['127.0.0.1', 'localhost', [subdomain_ip], 'subdomain.domain.org']

# MINIO BACKEND SETTINGS
MINIO_CONSISTENCY_CHECK_ON_START = True
MINIO_ENDPOINT = 'subdomain.domain.org:9000' 

MINIO_REGION = 'eu-west-1'  # Default is set to None, current is Ireland
MINIO_ACCESS_KEY = '[REDACTED]'
MINIO_SECRET_KEY = '[REDACTED]'
MINIO_USE_HTTPS = True

MINIO_EXTERNAL_ENDPOINT = 'subdomain.domain.org:9000' 
MINIO_EXTERNAL_ENDPOINT_USE_HTTPS = True  

MINIO_STORAGE_ENDPOINT = 'subdomain.domain.org:9000' 
MINIO_STORAGE_ACCESS_KEY = '[REDACTED]' 
MINIO_STORAGE_SECRET_KEY = '[REDACTED]' 

#MINIO_STATIC_FILES_BUCKET = 'bridge-static-files-bucket'
MINIO_MEDIA_FILES_BUCKET = 'bridge-media-files-bucket'


# Media files storage configuration
#DEFAULT_FILE_STORAGE = 'minio_storage.storage.MinioMediaStorage'
DEFAULT_FILE_STORAGE = 'django_minio_backend.models.MinioBackend'
MINIO_STORAGE_MEDIA_BUCKET_NAME = MINIO_MEDIA_FILES_BUCKET
MINIO_STORAGE_MEDIA_URL = f"{MINIO_EXTERNAL_ENDPOINT}/{MINIO_MEDIA_FILES_BUCKET}"

MINIO_PRIVATE_BUCKETS = ['django-backend-dev-private', ]
MINIO_PUBLIC_BUCKETS = ['django-backend-dev-public', ]

#MINIO_PRIVATE_BUCKETS.append(MINIO_STATIC_FILES_BUCKET)
MINIO_PRIVATE_BUCKETS.append(MINIO_MEDIA_FILES_BUCKET)

# Default: True // Creates bucket if missing, then save
MINIO_BUCKET_CHECK_ON_SAVE = True


# SSL
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
SECURE_SSL_REDIRECT = True
SECURE_HSTS_SECONDS = 31536000  # 1 year
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True

При вышеуказанной конфигурации, используя веб-приложение, я могу загружать файлы в MinIO как в интрасети (в сети хоста), так и через интернет. Однако, в то время как я могу просматривать загруженные файлы в веб-приложении при использовании интрасети (т.е. сети хоста), я получаю 404 Not Found ошибку при попытке предварительного просмотра загруженного файла при доступе к веб-приложению через Интернет с URL, указанным ниже. Брандмауэр настроен на разрешение трафика из Интернета на портах 9000 и 9001.

 [error] 990#990: *40 open() "/usr/share/nginx/html/bridge-media-files-bucket/documents/ITF.pdf" failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: "GET /bridge-media-files-bucket/documents/ITF.pdf?X-Amz-Algorithm=[Redacted]Credential=[Redacted]&X-Amz-Date=20241223T084407Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=[Redacted] HTTP/1.0", host: "subdomain.domain.org"

Как устранить ошибку 404?

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