openfire利用nginx做负载均衡

openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。openfire安装和使用都非常简单,并利用Web进行管理。openfire集群,还比较容易配置的,但是没有连接池,这一缺点,我们可以用nginx来弥补。

一,服务器说明


192.168.10.235    //openfire  
192.168.10.203    //openfire  
192.168.10.208    //openfire  
  
192.168.10.208    //nginx的连接池,web统一管理地址  
3台openfire,然后nginx服务端装在208,支持tct和http协议。不管是http,还是xmpp,统一的入口都是208。注意nginx的tcp反向代理,不能和xmpp的默认端口相同,不然208的nginx和openfire是不能同时起来的。如果不是同一台机器,就无所谓了。
二,openfire安装配置

1,下载 openfire


http://www.igniterealtime.org/downloads/index.jsp#openfire   //下载rpm包,安装方便一点  
2,启动openfire,并浏览器访问http://IP:9090,进行服务器设置,三台机器连接一个mysql数据库(也可以多台,多台要做mysql主从,不是本文重点)。
openfire安装就不详细说了,比较简单。如果一开始不是同一个mysql数据库,没关系可以修改配置文件,vim /opt/openfire/conf/openfire.xml

三,openfire集群配置

1,openfire hazelcast集群插件,我用的是openfire 3.9.3,默认是有这个插件的,在/openfire安装目录/plugins/目录下。如果没有,下载hazelcast.jar后放到该目录,在web管理后台安装插件就OK了。
2,配置hazelcast集群插件


# vim /opt/openfire/plugins/hazelcast/classes/hazelcast-cache-config.xml  
  
<join>  
    <multicast enabled="false">        //true改成false  
        <multicast-group>224.2.2.3</multicast-group>  
        <multicast-port>54327</multicast-port>  
    </multicast>  
    <tcp-ip enabled="true">     //false改成true,并添加以下内容  
        <member>192.168.10.203:5701</member>  
        <member>192.168.10.235:5701</member>  
        <member>192.168.10.208:5701</member>  
    </tcp-ip>  
    <aws enabled="false"/>  
</join>  
<interfaces enabled="true">    //false改成true,并添加以下内空  
    <interface>192.168.10.203</interface>     //本机IP  
</interfaces> 

三台openfire机器都按这种规则配置。配置完后,重启openfire

3,登录web管理后台,http://IP:9090,然后启动集群,如下图。
openfire_cluster
openfire_cluster
注意:保存设置后非常慢,如果卡在那儿,重启openfire就OK了。集群配置成功后,三台openfire的web管理后台,都可以看到三台openfire机器。

四,在192.168.10.208机器,nginx,nginx_tcp_proxy_module安装配置

扫描二维码关注公众号,回复: 1565739 查看本文章

1,nginx,nginx_tcp_proxy_module下载


nginx:   http://nginx.org/download/  
tcp插件:  https://github.com/yaoweibin/nginx_tcp_proxy_module 

2,安装nginx,打补丁,安装tcp插件


# wget http://nginx.org/download/nginx-1.2.1.tar.gz  
# tar -zxvf nginx-1.2.1.tar.gz  
# cd nginx-1.2.1/  
# patch -p1 < /nginx_tcp_proxy_module路径/tcp.patch     //打补丁  
# ./configure --add-module=/nginx_tcp_proxy_module路径   //添加nginx tcp模块  
# make && make install 

注意:nginx1.2.1,nginx1.4.7装这个插件都是没问题的,nginx1.8.1装这个插件,安装不成功。nginx的版本不能太新。

3,配置nginx


# vim /etc/nginx/nginx.conf    
  
tcp  {   //添加  
    timeout 1d;  
    proxy_read_timeout 10d;  
    proxy_send_timeout 10d;  
    proxy_connect_timeout 30;  
    upstream openfire5222{  
        server 192.168.10.235:5222;  
        server 192.168.10.203:5222;  
        server 192.168.10.208:5222;  
       check interval=3000 rise=2 fall=5 timeout=1000;  
    }  
    server{  
        listen 6222;  
        proxy_pass openfire5222;  
        so_keepalive on;  
        tcp_nodelay on;  
    }  
    upstream openfire5223{  
        server 192.168.10.235:5223;  
        server 192.168.10.203:5223;  
        server 192.168.10.208:5223;  
        check interval=3000 rise=2 fall=5 timeout=1000;  
    }  
    server{  
        listen 6223;  
        proxy_pass openfire5223;  
        so_keepalive on;  
        tcp_nodelay on;  
    }  
}  
  
http{  //添加以下内容  
。。。。。。。。。。。。省略。。。。。。。。。。。。。。  
    upstream openfire7070{  
        server 192.168.10.235:7070;  
        server 192.168.10.203:7070;  
        server 192.168.10.208:7070;  
    }  
    server{  
        listen 17070;  
        server_name 192.168.10.208;  
        location / {  
            proxy_pass http://openfire7070;  
        }  
    }  
    upstream openfire9090{  
        server 192.168.10.235:9090;  
        server 192.168.10.203:9090;  
        server 192.168.10.208:9090;  
        ip_hash;  
    }  
    server {  
        listen 19090;  
        server_name 192.168.10.208;  
        location / {  
            proxy_pass http://openfire9090;  
        }  
    }  
。。。。。。。。。。。。省略。。。。。。。。。。。。。。  

重启nginx

五,测试nginx openfire集群

1,测试openfire管理后台,http://192.168.10.208:19090
2,测试xmpp,下载spark,登录地址和端口,ip是:192.168.10.208;端口:6222
注册,并成功登录后,我们可以从四个web管理后台,看到在线人数。

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索服务器 , 测试 , 集群 , 配置 端口 xmpp openfire、xmpp openfire smack、agsxmpp openfire、ios xmpp openfire、openfire xmpp server,以便于您获取更多的相关知识。

猜你喜欢

转载自blog.csdn.net/zbajie001/article/details/80140884