2013-04-12 92 views
1

我有一个apache httpd服务器,说server1 *(公开暴露),充当一些jboss服务器(在防火墙后面)使用mod_cluster的负载平衡器。现在我想在一些Apache服务器上安装我的静态内容(images/css/htmls)以及可能的一些cg脚本,例如** server2server3(位于防火墙之后)。Apache httpd作为jboss的负载平衡器以及另一个Apache服务器

现在我想要server1作为这些server2和server3以及jboss服务器的负载平衡器。

采用这种结构,需要部署在JBoss应用程序的任何请求路由到JBoss和任何静态内容请求应该去服务器2服务器3

下面是我使用

版本

Linux服务器 apache httpd的 - 2.2.22 JBOSS-EAP-6

什么机制/配置,我需要在server1的使用,使它可能? 请看看有人可以帮忙。

回答

1

嗯,你只需添加一个ProxyPass设置。 mod_cluster与ProxyPass兼容,所以你可以同时使用两者。

举例来说,如果我想的GIF图像由httpd的送达,而不是由AS7,我可以添加:

ProxyPassMatch ^(/.*\.gif)$ ! 

此外,如果你设置

CreateBalancers 1 

mod_cluster不会为你创建代理,你必须自己做。这给你一个额外的控制。例如:

ProxyPassMatch ^/static/ ! 
ProxyPass/balancer://qacluster stickysession=JSESSIONID|jsessionid nofailover=on 
ProxyPassReverse/balancer://qacluster 
ProxyPreserveHost on 

在上述示例中,我们向工作人员代理除静态/内容以外的任何内容。

  • 注意:如果遇到相关问题的任何cookie,你可能想用ProxyPassReverseCookieDomain和ProxyPassReverseCookiePath玩。

  • 注意qacluster在我的配置。默认为myCluster中,所以命名我的平衡器qacluster,我说这mod_cluster配置(虚拟主机外):

    ManagerBalancerName qacluster 
    

如果它是不明确的,只是答复,我可以尝试进一步制定。

+0

嗨@Michal Karm Babacek

更多信息:能否请您解释或交modcluster与Apache服务器多重均衡? – ArunRaj

0

我在使用Apache HTTP服务器获取静态内容以及使用JBOSS AS 7服务器获取动态内容(JSF Web应用程序)时遇到了同样的问题。

因此,在加载模块的末尾添加以下属性告诉

CreateBalancers 0 

告诉给“0:创建在httpd的定义的所有VirtualHosts”。

更多在:http://docs.jboss.org/mod_cluster/1.2.0/html/native.config.html#d0e485

及以下的配置解决没有得到显示的图像和styel表的问题。

<VirtualHost *:80> 
    ServerName dev.rama.com 
    DocumentRoot "/var/www/assests" 
    UseAlias 1 
    ProxyPassMatch ^(.*\.bmp)$ ! 
    ProxyPassMatch ^(.*\.css)$ ! 
    ProxyPassMatch ^(.*\.gif)$ ! 
    ProxyPassMatch ^(.*\.jpg)$ ! 
    ProxyPassMatch ^(.*\.js)$ ! 
    ProxyPassMatch ^(.*\.png)$ ! 
<Directory /var/www/assests> 
    Options Indexes FollowSymLinks 
    AllowOverride None 
    Order allow,deny 
    Allow from all 
</Directory> 

注: 我们所有的web应用程序资产产生是HTTP服务器上的 的/ var/WWW /租入资产价值,我被访问的URL是dev.rama.com端口80

因此当它看到这个ProxyPassMatch ^(。*。css)$! Web服务器知道css文件对于http服务器是本地的,我们不需要去Jboss应用服务器。在http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass