4

在 Jboss AS 7 中:

将 Apache 放在 Jboss 前面可以正常工作:

ProxyPass / http://localhost:8080
ProxyPassReverse / http://localhost:8080

所以 app 由domain.com/app访问。

瞄准更清晰的 URL(只是domain.com)时出现问题:

ProxyPass / http://localhost:8080/app
ProxyPassReverse / http://localhost:8080/app

在第二种情况下,所有javax.faces.resource都不会交付,因为它们不使用战争上下文 URL。

知道如何在第二种情况下获取人脸资源吗?也许只是搬到 mod_jk?

这个关于 ResourceHandler 的答案非常有帮助。

4

3 回答 3

3

JSF通过路由ResourceHandler发出 URL <contextPath>/javax.faces.resource/,尽管是通过 ScriptRenderer、StyleSheetRenderer 等间接发出的。

由于您在 ProxyPass 指令中省略了应用程序名称(上下文路径),因此在将 URL 提供给浏览器之前,您需要使用 URL 重写器来省略这些 URL。请参阅相关问题中有关如何实现此目的的答案。

于 2013-03-04T14:45:58.447 回答
2

我使用多个ProxyPassProxyPassReverse条目来适应 JSF 可能吐出的不同上下文路径。以下通常是我对每个域 ( ServerName) 的默认设置...

<VirtualHost 127.0.0.1:8080>
    ServerAdmin email@email.com
    DocumentRoot "/"
    ServerName "dev.mydomain.com"

    ProxyPass /MyApp/ ajp://127.0.0.1:8009/MyApp/
    ProxyPassReverse /MyApp/ http://127.0.0.1:80/MyApp/

    ProxyPass /MyApp ajp://127.0.0.1:8009/MyApp/
    ProxyPassReverse / http://127.0.0.1:80

    ProxyPass / ajp://127.0.0.1:8009/MyApp/
    ProxyPassReverse / http://127.0.0.1:80/     
</VirtualHost>

上述配置将允许使用以下任何 URI 访问 Web 应用程序:

http://dev.myapp.com/MyApp/
http://dev.myapp.com/MyApp
http://dev.myapp.com/

因此,http://dev.myapp.com/javax.faces.resource/example.css将达到最后一条规则并被路由到http://dev.myapp.com/MyApp/javax.faces.resource/example.css. 此外,http://dev.myapp.com/MyApp/javax.faces.resource/example.css将符合第一条规则并按原样通过。

笔记:

  1. 顺序很重要!这些规则将自上而下处理。如果您将ProxyPassfor '/' 放在首位,则其他条件将永远不会得到处理。由于每个 URI/在主机名之后都有一个,因此每个请求都将使用该条件进行处理......这就是为什么/条件应该始终放在最后的原因。
  2. I highly recommend using the Apache JServ Protocol (ajp) Connector (instead of HTTP). It's built into Apache and JBOSS, it's easy to turn on and it significantly improves performance... especially if there's any kind of binary data (images) being routed. https://docs.jboss.org/jbossweb/2.1.x/config/ajp.html
于 2015-02-06T06:51:04.870 回答
1

遇到同样的问题,也没有找到配置 apache 服务器的方法。

如果您只想整理您的 URL,我可以推荐URLRewriteFilter这在这种情况下对我有帮助。

希望这会有所帮助,玩得开心!

于 2013-03-04T14:46:24.187 回答