Обратный прокси-сервер Nginx с DRF API

У меня проблема с NGINX Reverse proxy для Django Rest Framework API.

Моя архитектура находится в Docker, и контейнер nginx вызывает другой контейнер python благодаря свойству proxy_pass с его именами хостов.

Для адресации DRF API я использую местоположение '/api/'. Это расположение и proxy_pass успешны, и когда я вызываю URL, swagger API открывается.

Однако, когда я пытаюсь открыть администрацию, используя URL '/api/admin', происходит перенаправление на URL '/admin' и появляется ошибка 404. Такая же проблема возникает и на других страницах. Есть ли у вас идеи по поводу ошибки, которую нужно допустить, например, для '/api/admin' ?

Мой шаблон nginx выглядит так:

location /api/ {
    proxy_pass        http://api.drf.fr:8000/;
    proxy_set_header  X-Real-IP  $remote_addr;
    proxy_set_header  Host $http_host;
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header  X-Forwarded-Proto $scheme;
    client_max_body_size 0;
}

Мой URL в DRF API выглядит следующим образом :

from django.contrib import admin
from django.urls import path, include, re_path
from api.views import *

schema_view = get_swagger_view(title='API')

urlpatterns = [
    re_path(r'^auth/', include(('drf_social_oauth2.urls', 'drf'), namespace='drf')),
    path('admin/', admin.site.urls),
    path('', schema_view)
]

Не знаю, полезно ли это, но я запускаю API в контейнере python благодаря этой команде: gunicorn apidrf.wsgi --bind 0.0.0.0:8000 --workers 4 --threads 4

Спасибо

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