apachehttpd作为jboss以及其他Apache服务器的负载平衡器

apachehttpd作为jboss以及其他Apache服务器的负载平衡器,apache,jboss6.x,Apache,Jboss6.x,我有一个apachehttpd服务器,比如说server1*(公开),它使用mod_集群作为一些jboss服务器(防火墙后面)的负载平衡器。现在我想在两台apache服务器上安装我的静态内容(images/css/htmls)和一些cg脚本,比如**server2和server3(防火墙后面) 现在,我希望server1充当这些server2和server3以及jboss服务器的负载平衡器 根据这种安排,对部署在jboss上的应用程序的任何请求都需要路由到jboss,任何静态内容请求都应该转到s

我有一个apachehttpd服务器,比如说server1*(公开),它使用mod_集群作为一些jboss服务器(防火墙后面)的负载平衡器。现在我想在两台apache服务器上安装我的静态内容(images/css/htmls)和一些cg脚本,比如**server2server3(防火墙后面)

现在,我希望server1充当这些server2和server3以及jboss服务器的负载平衡器

根据这种安排,对部署在jboss上的应用程序的任何请求都需要路由到jboss,任何静态内容请求都应该转到server2server3

以下是我正在使用的版本

Linux服务器 apachehttpd-2.2.22 JBOSS-EAP-6

我需要在服务器1中使用什么机制/配置才能使之成为可能?
请看是否有人能帮上忙。

好吧,您只需添加一个ProxyPass设置。mod_cluster与ProxyPass兼容,因此您可以同时使用两者

例如,如果我希望由httpd而不是AS7提供gif图像,我可以添加:

ProxyPassMatch ^(/.*\.gif)$ !  
此外,如果您设置

CreateBalancers 1
mod_cluster不会为您创建代理,您必须自己创建代理。这为您提供了额外的控制。例如:

ProxyPassMatch ^/static/ !
ProxyPass / balancer://qacluster stickysession=JSESSIONID|jsessionid nofailover=on
ProxyPassReverse / balancer://qacluster
ProxyPreserveHost on
在前面的示例中,我们将/static/content以外的任何内容代理给工人

  • 注意:如果遇到任何与cookie相关的问题,您可能需要使用ProxyPassReverseCookieDomain和ProxyPassReverseCookiePath

  • 注意我的配置中的qacluster。默认值为mycluster,因此为了命名我的均衡器qacluster,我将其添加到mod_cluster config(VirtualHost外部):


如果不清楚,请回答,我可以尝试进一步详细说明。

好的,您只需添加一个ProxyPass设置。mod_cluster与ProxyPass兼容,因此您可以同时使用两者

例如,如果我希望由httpd而不是AS7提供gif图像,我可以添加:

ProxyPassMatch ^(/.*\.gif)$ !  
此外,如果您设置

CreateBalancers 1
mod_cluster不会为您创建代理,您必须自己创建代理。这为您提供了额外的控制。例如:

ProxyPassMatch ^/static/ !
ProxyPass / balancer://qacluster stickysession=JSESSIONID|jsessionid nofailover=on
ProxyPassReverse / balancer://qacluster
ProxyPreserveHost on
在前面的示例中,我们将/static/content以外的任何内容代理给工人

  • 注意:如果遇到任何与cookie相关的问题,您可能需要使用ProxyPassReverseCookieDomain和ProxyPassReverseCookiePath

  • 注意我的配置中的qacluster。默认值为mycluster,因此为了命名我的均衡器qacluster,我将其添加到mod_cluster config(VirtualHost外部):


如果不清楚,请回答,我可以试着进一步阐述。

我遇到了同样的问题,在年,我们使用Apache HTTP服务器处理静态内容,使用JBOSS作为7服务器处理动态内容(JSF web应用程序)

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

CreateBalancers 0   
告诉“0:在httpd中定义的所有虚拟主机中创建。”

更多信息,请访问:

下面的配置解决了图像和手写板无法显示的问题

<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>

ServerName dev.rama.com
DocumentRoot“/var/www/assests”
使用别名1
ProxyPassMatch^(.\.bmp)$!
ProxyPassMatch^(.\.css)$!
ProxyPassMatch^(.\.gif)$!
ProxyPassMatch^(.\.jpg)$!
ProxyPassMatch^(.\.js)$!
ProxyPassMatch^(.\.png)$!
选项索引跟随符号链接
不允许超限
命令允许,拒绝
通融

注: 我们对web应用程序的所有资产都位于HTTP服务器上 /var/www/assests,我访问的url是端口80上的dev.rama.com

所以当它看到这个ProxyPassMatch^(.*.css)$时 Web服务器知道css文件是http服务器的本地文件,我们不需要转到Jboss应用服务器


更多信息在

我遇到了同样的问题,在年,我们使用ApacheHTTP服务器处理静态内容,使用JBOSS作为7服务器处理动态内容(JSFWeb应用程序)

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

CreateBalancers 0   
告诉“0:在httpd中定义的所有虚拟主机中创建。”

更多信息,请访问:

下面的配置解决了图像和手写板无法显示的问题

<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>

ServerName dev.rama.com
DocumentRoot“/var/www/assests”
使用别名1
ProxyPassMatch^(.\.bmp)$!
ProxyPassMatch^(.\.css)$!
ProxyPassMatch^(.\.gif)$!
ProxyPassMatch^(.\.jpg)$!
ProxyPassMatch^(.\.js)$!
ProxyPassMatch^(.\.png)$!
选项索引跟随符号链接
不允许超限
命令允许,拒绝
通融

注: 我们对web应用程序的所有资产都位于HTTP服务器上 /var/www/assests,我访问的url是端口80上的dev.rama.com

所以当它看到这个ProxyPassMatch^(.*.css)$时 Web服务器知道css文件是http服务器的本地文件,我们不需要转到Jboss应用服务器


更多信息请访问

Hi@Michal Karm Babacek:您能解释或发布apache服务器中具有多个平衡器的modcluster吗?Hi@Michal Karm Babacek:您能解释或发布apache服务器中具有多个平衡器的modcluster吗?