@NyxDeveloper

Как убрать ненужную часть url при редиректе на uwsgi-приложение через Nginx?

Поднимаю проект на джанго на VDS. Раньше сильно не парился и пихал фронт на один порт, а бэк на другой, но сейчас ситуация такого сделать не позволяет. Мне нужно, чтобы и один и второй сервис висели на 80 порту, при этом, если обращаться к host:80/api/, то запрос перенаправлялся в UWSGI-приложение, а если просто host:80/, то в index.html.
Проблема в том, что запрос полностью перненаправляется в приложение джанги вместе с url, поэтому джанга думает, что у него запросили host:port/api/.../ и всегда выдает 404.
Вот конфиг который я использовал
upstream django {
    # server unix:///root/busines_trip_api/api.sock; 
    server 127.0.0.1:8000;
}

server {
    listen      80;
    # root      /root;
    server_name     address.ya.ne.dam;
    charset     utf-8;

    client_max_body_size 75M;

    location /media  {
        alias /root/media;
    }

    location /static {
        alias /root/static;
    }

    location /api {
        # rewrite ^/api$ / last;
        uwsgi_pass  django;
        include     /root/uwsgi_params;
    }

    location ^~ / {
        root   /root/dist;
        index  index.html index.htm;
        try_files $uri $uri/ @rewrites;
    }
    location @rewrites {
         root  /root/biztrip_frontend_webapp/dist;
         rewrite ^.*$ index.html last;
    }

}

Можно ли перенаправить запрос в django с измененным url?
  • Вопрос задан
  • 132 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы