我有一个 tomcat 服务器,带有 webapps/ROOT 应用程序,以 Apache 为前端。
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
and
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
我需要向此框中添加第二个 Web 应用程序,因此我将其解压到 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://我的服务器/ https://myserver/那么现有的默认 ROOT 应用程序可以正常工作,但是https://myserver/pib/ https://myserver/pib/在 catalina.out 中给出:
org.apache.jk.common.MsgAjp processHeader
SEVERE: BAD packet signature 18245
intertubes 表明这意味着我正在与 AJP 连接器而不是 AJP 进行 HTTP 通信,但第一个 Web 应用程序运行正常。
我缺少什么?我在每个 webapp 下都看到了 context.xml 文件的提及,但我不确定它们是什么for或者在里面放什么。
我通常不使用 AJP,但这个盒子已经可以这样工作了,所以我现在有点迷失了。
Thanks,