我有一个apache服务器,比如 server 1*(公开公开的),它充当使用mod_cluster的一些jboss服务器(防火墙后面)的负载均衡器。现在,我想将我的静态内容(映像/css/htmls)和一些cg脚本安装在两个apache服务器上,比如**server3 2和server3 (防火墙后面)。
现在,我希望server1与jboss服务器一起充当这些server2和server3的负载均衡器。
有了这种安排,部署在jboss上的任何应用程序请求都需要路由到jboss,任何静态内容请求都应该转到server2或server3。
以下是我正在使用的版本
Linux服务器apache httpd - 2.2.22 JBOSS 6
我需要在server1中使用什么样的机制/配置才能做到这一点?请看看是否有人能帮上忙。
发布于 2013-05-21 13:09:08
您只需添加一个ProxyPass设置即可。mod_cluster与ProxyPass兼容,因此您可以同时使用两者。
例如,如果我希望gif映像由httpd而不是AS7提供,我可以添加:
ProxyPassMatch ^(/.*\.gif)$ ! 此外,如果你
CreateBalancers 1mod_cluster不会为你创建代理,你必须自己去做。这给了你一个额外的控制。例如:
ProxyPassMatch ^/static/ !
ProxyPass / balancer://qacluster stickysession=JSESSIONID|jsessionid nofailover=on
ProxyPassReverse / balancer://qacluster
ProxyPreserveHost on在前面的示例中,我们将除/静态/内容以外的任何内容代理给工作人员。
如果不清楚,请回答,我可以再详细说明。
发布于 2013-10-25 15:41:04
我也遇到了同样的问题:我们使用Apache服务器进行静态内容,JBOSS作为7服务器处理动态内容( JSF应用程序)。
因此,在Load模块末尾添加以下属性将告诉您
CreateBalancers 0 告诉"0:在httpd中定义的所有VirtualHosts中创建“。
更多网址: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)$ !时,we服务器就知道这些css文件是http服务器的本地文件,我们不需要转到Jboss服务器。
更多信息请访问proxy.html#proxypass
https://stackoverflow.com/questions/15967652
复制相似问题