Назад | Перейти на главную страницу

Перенаправить исходящий трафик Tomcat

Как я могу перенаправить весь исходящий трафик с сервера Tomcat по шаблонам URL?

Пример: перенаправить все запросы от tomcat к

Это только для целей разработки на машине Windows. Я не хочу изменять свой хост-файл, потому что я все еще хочу получить доступ ко всему, как есть в моем браузере.

Есть ли способ настроить Tomcat таким образом?

редактировать: уточнение:

в настоящее время все службы работают на одном внутреннем сервере, но я хочу развернуть их на разных серверах. поэтому на основе URL-адреса после / я хочу направить его на другой сервер.

то есть:

Вы можете проксировать запрос перед tomcat, например, установить сервер apache на том же веб-сервере, на котором запущен tomcat (очевидно, на другом порту). Установите mod_proxy для apache и правильно перенаправьте на внешний или внутренний сервер.

вот пример конфигурации apache:

ProxyPass / мой сервис http: //a.backend.url: 8080 / my-service-a
ProxyPassReverse / my-service http: //a.backend.url: 8080 / my-service-a

Не забудьте правильно загрузить модуль в apache, вы можете обратиться к документации по поиску proxy-howto apache.

Используйте свойство, чтобы настроить, какой внутренний сервер использовать. Настройте tomcat на своем ноутбуке, чтобы использовать серверную часть разработки. Вы можете либо предоставить значение свойства по умолчанию с производственной базой данных, либо установить соответствующую внутреннюю часть на своем производственном сервере. Это дает вам большую гибкость при настройке промежуточных сред и сред тестирования производительности.

Если у вас несколько серверных служб, рассмотрите возможность использования свойства для каждой службы. Это дает возможность использовать одну службу для нескольких сред, а другие службы - по-разному. Он также позволяет масштабировать службы в случаях, когда нагрузка на службу требует одного или нескольких выделенных серверов.

Я установил балансировщик нагрузки (здесь nginx) локально на свой компьютер и указал на него как на backend-сервер.

Конфигурация выглядит так:

# This routes all traffic to the LB to a default backend server
location / {
    proxy_pass      http://my.backend.url:8080;
    proxy_redirect  http://my.backend.url:8080/ /;
    proxy_read_timeout 60s;

    proxy_set_header          Host            $host;
    proxy_set_header          X-Real-IP       $remote_addr;
    proxy_set_header          X-Forwarded-For $proxy_add_x_forwarded_for;
}

# This routes all traffic under "/my-service" to the different backend:
# a.backend.url:8080/my-service-a
location /my-service {
    proxy_pass      http://a.backend.url:8080/my-service-a
    proxy_redirect  http://a.backend.url:8080/my-service-a/ /;
    proxy_read_timeout 60s;

    proxy_set_header          Host            $host;
    proxy_set_header          X-Real-IP       $remote_addr;
    proxy_set_header          X-Forwarded-For $proxy_add_x_forwarded_for;
}