上一篇继续,Domain模式解决了统一管理多台jboss的问题,今天我们来学习如何利用mod_cluster来实现负载均衡、容错。

mod_cluster是jboss的一个开源集群模块(基于apache 2.2.x),官网地址为http://mod-cluster.jboss.org/ ,下面是使用步骤:

 

一、从官网下载binary文件

http://mod-cluster.jboss.org/downloads/1-2-6-Final-bin 这上面有各种OS的版本,本文以windows为试验环境,应该下载http://downloads.jboss.org/mod_cluster//1.2.6.Final/windows/mod_cluster-1.2.6.Final-windows-amd64.zip 这个版本

(注:如果是linux环境,应该下载http://downloads.jboss.org/mod_cluster//1.2.6.Final/linux-x86_64/mod_cluster-1.2.6.Final-linux2-x64.tar.gz)

 

二、解压安装

将下载下来的文件解压到jboss master server机器上的某个目录(假定master server的IP为172.21.129.181),比如C:\Apache2.2\ ,mod_cluster其实就是一个包含集群模块的apache server,如果你的机器上之前有安装过apache server,且自动安装成了windows服务,强烈建议先卸载,否则启动mod_cluster对应的apache时,有可能启动的是之前的版本。

注:如果是linux环境安装,强烈建议将压缩包中的httpd目录,解压到/opt/jboss/目录下,因为linux版本的很多脚本和配置里,都是写死这个目录,如果修改了目录,apachectl、http.conf这些文件里的路径全都要改,十分麻烦

2.1 先执行C:\Apache2.2\bin\installconf.bat 生成默认配置 (注:linux环境下安装时,无需执行该步骤,直接进入2.2改http.conf文件即可)

2.2 修改C:\Apache2.2\conf\httpd.conf

a)

#Listen 12.34.56.78:80

Listen 80

40行,把原来的端口8000,改成80,这样方便直接用 http://172.21.129.181/xxx 来访问应用

b)

164行改成

ServerName 172.21.129.181:80

c)

最后的mod_cluster部分,参考下面修改

# MOD_CLUSTER_ADDS
# Adjust to you hostname and subnet.
<IfModule manager_module>
  Listen 172.21.129.181:6666
  ManagerBalancerName mycluster
  <VirtualHost 172.21.129.181:6666>
    <Location />
     Order deny,allow
     #Deny from all
     Allow from all
    </Location>

    KeepAliveTimeout 300
    MaxKeepAliveRequests 0
    #ServerAdvertise on http://127.0.0.1:6666
    AdvertiseFrequency 5
    #AdvertiseSecurityKey secret
    #AdvertiseGroup 224.0.1.105:23364
    EnableMCPMReceive

    <Location /mod_cluster_manager>
       SetHandler mod_cluster-manager
       Order deny,allow
       #Deny from all
       Allow from all
    </Location>

  </VirtualHost>
</IfModule>

主要是把127.0.0.1,改成master server对应的真实IP,另外把Deny from all注释掉,把紧贴着的一行改成Allow from all,去掉这些访问上的限制

下面是完整的http.conf参考内容:

 1 ServerRoot "C:/Apache2.2"
 2 Listen 80
 3 LoadModule actions_module modules/mod_actions.so
 4 LoadModule alias_module modules/mod_alias.so
 5 LoadModule auth_basic_module modules/mod_auth_basic.so
 6 LoadModule authz_host_module modules/mod_authz_host.so
 7 LoadModule autoindex_module modules/mod_autoindex.so
 8 LoadModule dir_module modules/mod_dir.so
 9 LoadModule log_config_module modules/mod_log_config.so
10 LoadModule mime_module modules/mod_mime.so
11 
12 ServerAdmin jimmy@localhost.localdomain
13 ServerName 172.21.129.181:80
14 DocumentRoot "C:/Apache2.2/htdocs"
15 
16 <Directory />
17     Options FollowSymLinks
18     AllowOverride None
19     Order deny,allow
20     Allow from all
21 </Directory>
22 
23 <Directory "C:/Apache2.2/htdocs">   
24     Options Indexes FollowSymLinks  
25     AllowOverride None
26     Order allow,deny
27     Allow from all
28 </Directory>
29 
30 <IfModule dir_module>
31     DirectoryIndex index.html
32 </IfModule>
33 
34 <FilesMatch "^\.ht">
35     Order allow,deny
36     Deny from all
37     Satisfy All
38 </FilesMatch>
39 
40 ErrorLog "logs/error_log"
41 LogLevel warn
42 <IfModule log_config_module>   
43     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
44     LogFormat "%h %l %u %t \"%r\" %>s %b" common
45 
46     <IfModule logio_module>     
47       LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
48     </IfModule>   
49     CustomLog "logs/access_log" common   
50 </IfModule>
51 
52 <IfModule alias_module>  
53     ScriptAlias /cgi-bin/ "C:/Apache2.2/cgi-bin/"
54 </IfModule>
55 
56 <Directory "C:/Apache2.2/cgi-bin">
57     AllowOverride None
58     Options None
59     Order allow,deny
60     Allow from all
61 </Directory>
62 
63 DefaultType text/plain
64 
65 <IfModule mime_module>  
66     TypesConfig conf/mime.types   
67     AddType application/x-compress .Z
68     AddType application/x-gzip .gz .tgz   
69 </IfModule>
70 
71 LoadModule proxy_module modules/mod_proxy.so
72 LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
73 LoadModule proxy_http_module modules/mod_proxy_http.so
74 LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
75 LoadModule manager_module modules/mod_manager.so
76 LoadModule slotmem_module modules/mod_slotmem.so
77 LoadModule advertise_module modules/mod_advertise.so
78 
79 # MOD_CLUSTER_ADDS
80 <IfModule manager_module>
81   Listen 172.21.129.181:6666
82   ManagerBalancerName mycluster
83   <VirtualHost 172.21.129.181:6666>
84     <Location />
85      Order deny,allow    
86      Allow from all
87     </Location>
88     KeepAliveTimeout 300
89     MaxKeepAliveRequests 0   
90     AdvertiseFrequency 5   
91     EnableMCPMReceive
92     <Location /mod_cluster_manager>
93        SetHandler mod_cluster-manager
94        Order deny,allow       
95        Allow from all
96     </Location>
97   </VirtualHost>
98 </IfModule>
View Code

相关文章:

  • 2021-08-07
  • 2021-08-07
  • 2021-08-07
  • 2021-08-07
  • 2021-09-11
  • 2021-11-13
  • 2021-08-17
  • 2021-11-03
猜你喜欢
  • 2021-09-11
  • 2021-11-20
  • 2021-08-07
  • 2021-08-07
  • 2021-12-27
  • 2021-08-07
  • 2021-09-11
  • 2021-09-11
相关资源
相似解决方案