Я не думаю, что использование rewrite
является идеальным решением (кстати, я не думаю, что оно охватит все аспекты вашей проблемы и может вызвать новые проблемы)
Решение заключается в следующем:
Конфигурация nginx должна выглядеть примерно так:
upstream django {
server unix://tmp/gunicorn.sock; //
}
server {
listen 80;
server_name <your_app_domain_here>;
location /frontend {
include uwsgi_params;
proxy_pass http://django/;
}
}
или, если вы не используете файл sock
, вы можете использовать метод http.например, если вы используете django на локальном хосте с портом 8000, измените его на:
proxy_pass http://localhost:8000/;
Но помните , вы должны добавить это в свой django settings.py
.Если это не работает вообще:
USE_X_FORWARDED_HOST = True
FORCE_SCRIPT_NAME = "/frontend"
Этим способом вы меняете базовый URL в django.поэтому все URL-адреса django должны начинаться с метки fronted
.Теперь nginx может отлично работать в качестве обратного прокси для вашего сайта:)