Ограничение коннектора Tomcat http сервером Apache

Я использую Apache 2.4 перед Tomcat 7. Я пытаюсь использовать веб-сокеты, поэтому я настроил коннектор на основе http в Tomcat, как показано ниже

<Connector port="8009"  protocol="HTTP/1.1" proxyPort="80" maxPostSize="10485760" redirectPort="8443" URIEncoding="UTF-8"  />

Я настроил mod_proxy и mod_proxy_wstunnel и mod_proxy_http в Apache 2.4. Соединения через веб-сокет работают нормально, когда к App обращаются через "http://webserver/myapp".

Однако приложение также может быть доступно через http://webserver:8009/myapp,

Я хочу, чтобы мое приложение было доступно только через веб-сервер Apache (http://webserver/myapp), а НЕ напрямую используя tomcat (http://webserver:8009/myapp). Я не могу использовать модули AJP (mod_proxy_ajp или mod_jk), потому что модули AJP не поддерживают веб-сокеты.

Есть ли способ, которым я могу ограничить кота Connector только для веб-сервера Apache.

2 ответа

Вы можете использовать это.

<Context path="/manager" docBase="manager" reloadable="true" privileged="true" >
      <Valve className="org.apache.catalina.valves.RemoteIpValve"/>
      <Valve className="org.apache.catalina.valves.RemoteHostValve" allow="<your IP regex>"/>
</Context>

Измените соответствующие значения в контекстном пути, базе документов и IP-адресе. Это, по крайней мере, ограничит localhost.

Другой способ - слушать tomcat только на локальном хосте с помощью приведенного ниже кода.

<Connector port="8009" address="127.0.0.1" 

Используйте брандмауэр на вашем сервере. Таким образом, вы не только делаете tomcat недоступным, но и любой другой процесс, который может открыть порт на этой машине.

Добавьте в белый список порты, которые вы хотите сделать доступными для мира, и по умолчанию блокируйте все остальные порты.

Другие вопросы по тегам