2013-04-12 100 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