我有一个 tomcat 服务器,带有一个 webapps/ROOT 应用程序,前面是 Apache。
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
和
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
我需要在此框中添加第二个 webapp,因此我将其解压缩到 webapps/pib.war/ 并更改了 Apache conf:
ProxyPass /pib http://localhost:8009/pib
ProxyPassReverse /pib http://localhost:8009/pib
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
我的 tomcat/conf/server.xml 包含:
<Service name="Catalina">
<Connector port="8009" protocol="AJP/1.3" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase" />
<Host name="localhost" appBase="webapps" />
</Engine>
</Service>
我只有一个 context.xml 文件 - webapps 下没有 - 在 conf/context.xml
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
当我访问https://myserver/时,现有的默认 ROOT 应用程序正常工作,但https://myserver/pib/在 catalina.out 中给出:
org.apache.jk.common.MsgAjp processHeader
SEVERE: BAD packet signature 18245
intertubes 建议的意思是我正在与 AJP 连接器而不是 AJP 交谈 HTTP,但第一个 web 应用程序工作正常。
我错过了什么?我在每个 webapp 下都看到过 context.xml 文件的提及,但我不确定它们的用途或放入其中的内容。
我通常不使用 AJP,但是这个盒子已经在这样工作了,所以我现在有点迷茫。
谢谢,