我有多个使用 ajp 协议在 tomcat 服务器上运行的 grails 应用程序。在同一台服务器上,我将 apache 作为这些 tomcat 应用程序的前端运行。apache配置如下:
ProxyPass /example1/ ajp://localhost:8082/example1/
ProxyPassReverse /example1/ ajp://localhost:8082/example1/
ProxyPass /example2/ ajp://localhost:8082/example1/
ProxyPassReverse /example2/ ajp://localhost:8082/example2/
我希望 example1 作为根上下文运行
ProxyPass / ajp://localhost:8082/example1/
这不起作用。所有静态内容都已损坏。网页文本呈现,图像将指向:/example1/images/myimage.jpg 如果您转到:/images/myimage.jpg,图像将得到解析
我已经尝试了很多方法来避免将 example1 部署为 ROOT.war。但这似乎是解决此问题的唯一方法。这不足以满足我的需要。
在 grails 方面,我已将 ${appName} 从服务器 url 中删除,看起来像:grails.serverURL = "http://apacheajp.example.com/"
我已将 grails.app.context=/ 添加到 application.properties,这也不起作用。
这里的最终目标是使用这个 apache 来为多个子域服务。我希望 example1.example.com(apacheajp.example.com 的别名)解析为 example1 应用程序。同样,我希望 example2.example.com 对 example2 应用程序采取相同的方式。这解释了为什么部署为 ROOT 是不可取的。
我使用的服务器是 RHEL6
这篇文章最好地描述了我遇到的相同问题:http: //grails.1312388.n4.nabble.com/Grails-context-big-problem-with-apache-mod-proxy-td1392448.html