• 云途科技成立于2010年 - 专注全球跨境电商服务器租赁托管!
  • 帮助中心

    您可以通过下方搜索框快速查找您想知道的问题

    nginx openfire xmpp 集群 安装配置详解

      in  unix      Tags: 

    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机器,nginxnginx_tcp_proxy_module安装配置

    1,nginxNginx_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管理后台,看到在线人数。



    • 外贸虚拟主机

      1GB硬盘

      2个独立站点

      1000M带宽

      不限制流量

      美国外贸专用虚拟主机,cPanel面板,每天远程备份.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥180/年

    • 美国/荷兰外贸VPS

      2核CPU

      1G内存

      30硬盘

      10M带宽

      美国/荷兰外贸云服务器,专注外贸服务器行业12年.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥99/月

    • 全球外贸服务器

      8核CPU

      32G内存

      1TB硬盘

      1000M带宽

      已部署数据中心:美国洛杉矶/亚特兰大、荷兰、加拿大、英国伦敦、德国、拉脱维亚、瑞典、爱沙尼亚
      自有机柜(全球九大数据中心),稳定在线率:99.9%

      ¥999/月 原价1380

    7*24小时 在线提交工单

    如果您的问题没有得到解决,推荐您在线提交工单,我们的客服人员会第一时间为您解决问题

    展开