Обратный прокси-сервер 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
Спасибо