1

我有一个 apache httpd 服务器,比如server1*(公开),它使用 mod_cluster 充当一些 jboss 服务器(在防火墙后面)的负载平衡器。现在我想在几个 apache 服务器上安装我的静态内容(images/css/htmls)和一些 cg 脚本,比如 **server2server3(在防火墙后面)。

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

通过这种安排,部署在 jboss 上的应用程序的任何请求都需要路由到 jboss,并且任何静态内容请求都应该发送到server2server3

这是我正在使用的版本

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

我需要在server1中使用什么机制/配置才能使其成为可能?请看看是否有人可以帮助解决这个问题。

4

2 回答 2

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

在上述示例中,我们将除 /static/ 内容之外的任何内容代理给工作人员。

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

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

    ManagerBalancerName qacluster
    

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

于 2013-05-21T13:09:08.793 回答
0

我遇到了同样的问题,我们将 Apache HTTP 服务器用于静态内容,将 JBOSS AS 7 服务器用于动态内容(JSF Web 应用程序)。

因此,在 Load modules 的末尾添加以下属性会告诉

CreateBalancers 0   

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

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

下面的配置解决了图片和样式表不显示的问题。

<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 应用程序的所有资产都位于 /var/www/assests 的 HTTP 服务器上,我访问的 url 是端口 80 上的 dev.rama.com

所以当它看到这个ProxyPassMatch ^(.*.css)$ ! webserver 知道 css 文件是 http 服务器本地的,我们不需要去 Jboss App 服务器。

更多信息请访问http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypass

于 2013-10-25T15:41:04.860 回答