2015-06-22 3 views
0

Я пытаюсь настроить так, чтобы кот мое приложение будет доступно через два разных порта, скажем, 8080 и 8980, но некоторые URL-адреса будут доступны только через 8980.ограничение порта кот URL

Причина в том, что в сети уровень использует 8080, и я не хочу, чтобы определенные URL-адреса отображались во внешнем мире. Я также не хочу настраивать веб-серверы, чтобы ограничить это, из-за связи, создаваемой между приложением и веб-уровнем.

Я понимаю, что я могу настроить два разъема, а затем программно блокировать вызовы к URL-адресов на основе порта, но:

  1. Я предпочел бы не жестко закодировать порт, так как он может быть изменен в будущее в server.xml
  2. Я хочу такое же поведение в различных приложениях в организации, и не хочу, чтобы все разработчики нуждались в реализации этого отдельно.

Есть ли конфигурация, где я могу, возможно, исключить определенные шаблоны URL из коннектора, определенного в server.xml?

Заранее благодарен!

+0

Просто положить обратный HTTP-прокси (например, HTTP-сервер Apache с его прокси-сервером AJP) перед вашим Tomcat и настроить политики доступа там. –

ответ

0

В tomcat вы можете определить несколько служб с разными портами разъемов и настройками двигателя, но приложение будет обслуживаться только одним движком, поэтому вам придется развертывать свое приложение несколько раз.

Для таких случаев, как ваш, tomcat слишком ограничен, но эта функциональность обычно откладывается на обратный прокси-сервер, например. apache или nginx.

Вы могли бы, например, пусть ваш кот служить на порту 8980, и настроить Apache для обратного прокси-сервера все/приложения вызовов на порт 8080, за исключением внутренностей:

Listen 8080 

<VirtualHost *:8080> 
    ProxyPass /app/internal ! 
    ProxyPass /app http://localhost:8980/app 
</VirtualHost> 

См http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass