Добрый день!!
Пожалуйста, помогите мне с nginx и реврайтами.
Начальная ситуация:
У нас было Tomcat приложение, которое включало в себя как фронтэнд, так и часть сайта для зарегистрированных пользователей. URL были (для примера) www.server.com/news (для фронтэнда) и www.server.com/customer/archive (для внутренней части).
Nginx был сконфигурирован так, чтобы всё проксировалось на Tomcat:
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Client-IP $remote_addr;
}
Было принято решение установить cms с php для frontend и url frontend-a стали www.server.com/en/news или www.server.com/de/news, а ссылка для админки панели www.server.com/panel
Внутренняя часть сайта осталась Tomcat приложением и URL внутри приложения остались такими же как и были:
www.server.com/customer/archive или www.server.com/dashboard, одна вещь - мы решили засунуть томкетовское приложение под /app/ в url.
Правильный url должен быть: www.server.com/app/customer/archive или www.server.com/app/dashboard
Если я просто меняю location для Tomcat с / на /app/ :
location /app/ {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Client-IP $remote_addr;
}
То нажимая на ссылку в приложении меня редиректит на www.server.com/customer/archive. Если я руками подправляю url на www.server.com/
app/customer/archive - страница открывается.
Мой вопрос - как сконфигурировать правильный rewrite в nginx, чтобы отдавать всё без ошибок, при условии что мы не можем изменить линки внутри tomcat app ( они останутся вида - /customer/archive)?
Заранее спасибо всем за ответ!