Я хочу увеличить maxThreads для коннектора ajp до 500, я заметил, что у него есть порт перенаправления 8443, поэтому следует ли мне также увеличить maxThreads коннектора на порту 8443?
<!-- Define a SSL HTTP/1.1 Connector on port 8443
This connector uses the JSSE configuration, when using APR, the
connector should be using the OpenSSL style configuration
described in the APR documentation -->
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" maxThreads="500"/>
В любых настройках httpd + Tomcat, с которыми я работал, мы избавляемся от любых HTTP-коннекторов, добавляем коннектор AJP для обратной петли и позволяем ему работать без шифрования. Цель состоит в том, чтобы позволить Tomcat выполнять работу приложения Java, а httpd обрабатывать все службы HTTP.
Единственный способ использования redirectPort в случае коннектора AJP - наличие веб-приложения (web.xml), содержащего ограничение безопасности, имеющее ограничение данных пользователя, для которого установлено значение Transport-Guarantee как CONFIDENTIAL.
По крайней мере, в нашем случае в наших приложениях редко бывает такая конструкция. Обычно мы обеспечиваем безопасную связь через httpd или балансировщик нагрузки. Большинство наших приложений в любом случае требуют SSL в любое время из-за отображаемых данных.
Обновленный ответ:
Вот реальная базовая конфигурация Tomcat с небольшой настройкой для увеличения maxThreads коннектора до 500. Он настроен только на прослушивание трафика AJP / 1.3 по шлейфу (а также для порта выключения).
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Service name="Catalina">
<Connector port="8009" protocol="AJP/1.3" address="127.0.0.1" enableLookups="false" maxThreads="500" />
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
</Server>
На стороне httpd у нас есть файл proxy_ajp.conf, который мы используем для конкретного сопоставления URL-путей с Tomcat. Пример:
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
ProxyPass /fooAppA/ ajp://localhost:8009/fooAppA/
ProxyPass /fooAppB/ ajp://localhost:8009/fooAppB/
ProxyPassReverse /fooAppA/ ajp://localhost:8009/fooAppA/
ProxyPassReverse /fooAppB/ ajp://localhost:8009/fooAppB/
Httpd.conf можно настроить на использование (и, при необходимости, принудительное использование) SSL. Но это совершенно необязательно.