我希望将 ajp 连接器的 maxThreads 增加到 500,我注意到它有一个重定向端口 8443,所以我是否也应该增加端口 8443 上连接器的 maxThreads ?
<!-- 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"/>
答案1
在我使用过的任何 httpd + Tomcat 设置中,我们都会删除任何 HTTP 连接器,将 AJP 连接器包含在环回中并让其在不加密的情况下运行。目标是让 Tomcat 执行 Java 应用程序工作,让 httpd 处理所有 HTTP 服务。
在 AJP 连接器的情况下,使用 redirectPort 的唯一方式是如果存在一个 Web 应用程序 (web.xml),其中包含一个安全约束,该安全约束具有一个用户数据约束,并且该用户数据约束的传输保证设置为 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。但这完全是可选的。