如何在weblogic插件中使用httpd config删除应用程序路径

时间:2018-01-04 06:02:13

标签: ajax apache plugins weblogic12c

我开发了一个名为myapp的JSF应用程序部署在受管服务器managedServer1上的weblogic 12c http服务器和名为 mycluster 的同一集群中的managedServer2上。应用程序可以通过URL http://xx.xx.xx.xx(ip访问managedServer1):9080 / myapp。

我尝试通过configure httpd(httpd.conf)在weblogic集群的前面添加一个apache负载均衡器http服务器:

<VirtualHost *:80>

ServerName www.mywebsite.com.au
ServerAlias mywebsite.com.au

<Proxy balancer://mycluster>
  BalancerMember http://xx.xx.xx.xx1:9080/myapp
  BalancerMember http://xx.xx.xx.xx2:9080/myapp
</Proxy>

ProxyRequests off
ProxyPreserveHost On

<Proxy *>
  Require all granted
</Proxy>

ProxyPass /myapp balancer://mycluster/
ProxyPassReverse /myapp balancer://mycluster/
ProxyPass / balancer://mycluster/
ProxyPassReverse / balancer://mycluster/

<Location />
  Require all granted
</Location>

</VirtualHost>

通过使用此配置,我可以通过URL

访问我的jsf应用程序
http://www.mywebsite.com.au

直接

不幸的是,由于我的JSF应用程序在我的jsf页面中有很多ajax异步请求,因此apache反向代理无法正确处理它,总是导致会话丢失。我必须找到满足我的ajax请求的替代方法。

我同意Oracle建议为我的apache http服务器安装weblogic插件。安装插件后,我使用:

重新配置我的httpd.conf
<VirtualHost *:80>
ServerName www.mywebsite.com.au
<IfModule mod_weblogic.c>
  WebLogicCluster xx.xx.xx.xx1:9080,xx.xx.xx.xx2:9080
  MatchExpression *.xhtml
</IfModule>
<Location /myapp>
  SetHandler weblogic-handler
  Require all granted
</Location>
</VirtualHost> 

不幸的是。我必须通过调用URL访问我的JSF应用程序:

http://www.mywebsite.com.au/myapp

我的问题是:是否有另一种方法可以配置我的虚拟主机从root用户访问我的JSF应用程序? (http://www.mywebsite.com.au)没有应用程序路径。如果是,请指教!

1 个答案:

答案 0 :(得分:0)

经过几天的工作,找到解决此问题的方法,httpd.conf更新为:

<Location />
  SetHandler weblogic-handler
  PathTrim /myapp
  PathPrepend /myapp
  Require all granted
</Location>

使用PathTrim和PathPrepend来映射URL。系统现在运作良好。

此问题可能有助于处于相同情况的其他任何人。