![tomcat 7.0.100 AJP 连接器与另一台主机上的 mod_jk](https://linux22.com/image/749316/tomcat%207.0.100%20AJP%20%E8%BF%9E%E6%8E%A5%E5%99%A8%E4%B8%8E%E5%8F%A6%E4%B8%80%E5%8F%B0%E4%B8%BB%E6%9C%BA%E4%B8%8A%E7%9A%84%20mod_jk.png)
将 tomcat7 升级到 7.0.100 后,AJP 连接器仅在 127.0.0.1 上监听。最初,我在 /etc/tomcat7/server.xml 中编辑了错误的 server.xml,该 xml 未使用。至少对我来说,正确的是 /var/lib/tomcat7/conf/server.xml。我添加了以下两个参数:
address="0.0.0.0"
requiredSecret="false"
现在它像以前一样监听所有接口。但是当我尝试使用 mod_jk 访问它时,我得到了 403。嗅探器确认这是来自 AJP 连接器。所以我尝试设置
allowedRequestAttributesPattern=".*"
这并不能解决问题。有什么想法吗?
答案1
尝试这个:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" address="0.0.0.0" allowedRequestAttributesPattern=".*" secretRequired="false" />
https://tomcat.apache.org/tomcat-7.0-doc/changelog.html
7.0.100 中的变更:
requiredSecret
将AJP/1.3 连接器的属性重命名为 secret,并添加一个secretRequired
默认为 true 的新属性。当 secretRequired 为 true 时,除非将 secret 属性配置为非空、非零长度的字符串,否则 AJP/1.3 连接器将不会启动。(markt)
答案2
当我们在 AJP 上设置密码时,403 错误就消失了。因此,在 server.xml 部分中,我们输入:
<Connector port="8109" protocol="AJP/1.3" redirectPort="8443" secret="verysecure" secretRequired="true"/>
在 mod_jk 的 worker_properties 中:
worker.tomcat-06.secret=verysecure