我们在apache web服务器后面有一个hybris服务器,它与ajp连接器相连。这是完美的,但是由于某种原因,在更新到hybris 5.3(和tomcat 7)之后,安全的ajp连接器没有渲染。
在hybris tomcat配置文件夹中,我们在server.xml中有这个:
$('.scrolltdup').click(function(event) {
event.preventDefault();
$('.wrap').animate({
marginTop: "+=160px"
}, "fast");
});
$('.scrolltddown').click(function(event) {
event.preventDefault();
$('.wrap').animate({
marginTop: "-=160px"
}, "fast");
});
在平台server.xml
中渲染ant all all${tomcat.connectors.ajp.plain}
这适用于非安全连接,但我们还需要呈现安全连接器:
<Connector protocol="AJP/1.3" port="8009" proxyPort="80" redirectPort="443" />
我可以将其硬编码到server.xml中,但这似乎不是最好的方法。我无法找到实际呈现 $ {tomcat.connectors.ajp.plain} 的位置。是否有类似的属性可以使用local.properties中定义的端口呈现安全连接器?
答案 0 :(得分:0)
我认为你应该尝试:
<Connector
protocol="AJP/1.3"
port="8010"
connectionTimeout="20000"
scheme="https"
SSLEnabled="true"
secure="true"
maxThreads="200"
proxyPort="443"/>
答案 1 :(得分:0)
我担心你必须在配置目录的server.xml模板中手动声明它。
实际上,我更喜欢为两个AJP连接器执行此操作,因为您提到的变量注入的模板化配置不是很好,因此我看到了显着的性能问题。例如,未指定线程数,并且它与执行程序无关。这意味着当处于大负载时,活动线程的数量可能会增长到一个愚蠢的数字,并导致整个事情都崩溃。
事实上,下面是我使用的 config / tomcat / conf / server.xml 的片段,我已经开发了7年,专门研究Hybris。它不仅具有合理的配置,而且还使用性能更高的非阻塞IO协议。
希望这有帮助。
<Executor name="hybrisExecutor"
namePrefix="hybrisHTTP"
maxThreads="${tomcat.maxthreads}"
minSpareThreads="${tomcat.minsparethreads}"
maxIdleTime="${tomcat.maxidletime}"/>
<Connector port="${tomcat.http.port}"
maxHttpHeaderSize="8192"
maxThreads="${tomcat.maxthreads}"
protocol="org.apache.coyote.http11.Http11NioProtocol"
executor="hybrisExecutor"
enableLookups="false"
acceptCount="${tomcat.acceptcount}"
connectionTimeout="20000"
URIEncoding="UTF-8"
disableUploadTimeout="true" />
<Connector port="${tomcat.ssl.port}"
maxHttpHeaderSize="8192"
maxThreads="${tomcat.maxthreads}"
protocol="org.apache.coyote.http11.Http11NioProtocol"
executor="hybrisExecutor"
enableLookups="false"
acceptCount="${tomcat.acceptcount}"
connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="UTF-8"
SSLEnabled="true"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="${catalina.home}/lib/keystore"
keystorePass="123456" />
<!--
We explicitly declare the AJP connectors as we want to separate HTTP and SSL traffic and the default connector setting Hybris provides is not good enough.
-->
<Connector protocol="org.apache.coyote.ajp.AjpNioProtocol"
executor="hybrisExecutor"
enableLookups="false"
acceptCount="${tomcat.acceptcount}"
connectionTimeout="120000"
maxThreads="${tomcat.maxthreads}"
port="${tomcat.ajp.port}"
proxyPort="${proxy.http.port}"
redirectPort="${proxy.ssl.port}"
URIEncoding="UTF-8"
useIPVHosts="${tomcat.ajp.useipv}" />
<Connector protocol="org.apache.coyote.ajp.AjpNioProtocol"
executor="hybrisExecutor"
enableLookups="false"
acceptCount="${tomcat.acceptcount}"
connectionTimeout="120000"
maxThreads="${tomcat.maxthreads}"
port="${tomcat.ajp.secureport}"
proxyPort="${proxy.ssl.port}"
redirectPort="${proxy.http.port}"
scheme="https"
secure="true"
URIEncoding="UTF-8"
useIPVHosts="${tomcat.ajp.useipv}" />
变量只是您在local.properties中声明的属性。当它在平台tomcat目录中构建实际的server.xml时,它们在构建时被ant部署任务替换。