Я знаю, что было много сообщений о nginx + rewrite, но у меня был случай, когда я не мог заставить его работать должным образом.
У меня есть несколько докеризированных фляжных приложений, назовем их: vm1
,вм2
,вм3
...вм6
У меня есть домен:
manager.mydomain.com
Чего я хотел бы достичь:
когда пользователь переходит к
https://manager.mydomain.com/vm6
перенаправляется, например, на
https://manager.mydomain.com/vm6/логин
(и другие конечные точки /admin ....)
Так что вообще говоря, что покрыто https://manager.mydomain.com/vm6/(.*)
перенаправляется в приложение фляги.
К сожалению, есть ссылки, которые также необходимо переписать.
Моя текущая пробная версия:
http {
восходящий менеджер vm4 {
наименьшее_соединение;
сервер ХХХ:5004;
}
восходящий менеджерvm6 {
наименьшее_соединение;
сервер ГГГГ:5006;
}
сервер {
имя_сервера manager.mydomain.com;
слушать 443 ssl;
ssl_certificate /etc/letsencrypt/live/manager.mydomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/manager.mydomain.com/privkey.pem;
журнал_доступа /var/log/nginx/dtmanager.access.log;
error_log /var/log/nginx/dtmanager.error.log;
log_subзапрос включен;
местоположение / vm6 {
переписать ^/vm6$ https://manager.mydomain.com/vm6/ на постоянную;
}
местоположение /vm6/ {
#переписать /vm6/(.*) /vm6/$1 break;
sub_filter '"/' '"/vm6/';
sub_filter_once выключен;
прокси_пароль http://managervm6/;
#proxy_redirect выключен;
proxy_set_header Хост $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
Когда я перемещаюсь
curl -i https://manager.mydomain.com/vm6/admin
получаю в ответ:
Сервер: nginx/1.13.9
Дата: пт, 02 июля 2021 г., 09:14:40 по Гринвичу
Тип содержимого: текст/html; кодировка = utf-8
Передача-кодирование: по частям
Соединение: Keep-alive
Адрес: http://manager.mydomain.com/admin/
НО, если я перейду к
curl -i https://manager.mydomain.com/vm6/логин
Я получаю правильный ответ, но затем авторизация не работает (я думаю, что-то не так с перенаправлениями)
Что я делаю не так?
Спасибо!