@Monkz

Ngnix rewrite (cms и tomcat) — как правильно настроить?

Добрый день!!

Пожалуйста, помогите мне с 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)?

Заранее спасибо всем за ответ!
  • Вопрос задан
  • 168 просмотров
Пригласить эксперта
Ответы на вопрос 1
castomi
@castomi
Серверный администратор - tickets.settin.ru
Если я всё верно понял, то достаточно чтобы томкат делал линки у себя относительными, а не полными. В этом случае при проксировании /app/ будет добавляться автоматом. Есть еонечно и другие способы решения проблемы, но они больше похожи на костыли)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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