У меня есть приложение Django, и недавно мне нужно было запустить бета-версию. Я хочу сохранить текущее работающее приложение нетронутым и перенаправить все запросы, начинающиеся с «/beta», в бета-приложение с помощью Nginx. Вот моя конфа
location / {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 10;
proxy_read_timeout 360;
proxy_pass http://localhost:8000/;
}
location /beta/ {
rewrite ^/beta/(.*)$ /$1 break;
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 10;
proxy_read_timeout 360;
proxy_pass http://localhost:8001/;
}
Это работает, но есть проблема: когда приложение возвращает ответ 301, в основном, когда пользователю необходимо войти в систему для доступа к какому-либо ресурсу, URL-адрес становится старым.
Например, если /events
требуется логин.
http://example.com/beta/events -> http://example.com/login?next=/events/
Как это исправить, не меняя код приложения? (решение Nginx?)