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
三台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安装配置
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管理后台,看到在线人数。
凡尔赛法环免广告版 最新版v1.69.1
下载天煞异种 安卓版v1.0.21
下载十三月 (Undecember)最新官方中文版v3.26.0200
下载我不是废柴无限99999钻999999金币游戏 不减反增版v1.2.16
下载我的女友是声优免广告 安卓版v1
我的女友是声优免广告是一款非常好玩的模拟经营类手游,玩家在游
石器帝国去广告版 v8
石器帝国免广告版是游戏的破解版本,在该版本中为玩家去除了广告
校园恋爱模拟器真人版去广告版 v0.0.7
校园恋爱模拟器真人版免广告版是游戏的破解版本,在该版本中为玩
教练我要开球馆内置菜单修改器 安卓版v1.5.4
教练我要开球馆内购版是一款模拟经营类游戏,玩家们将在游戏中创
我的游轮无限砖石 安卓版v1.7.0
我的游轮无限金币钻石版是一款模拟经营类游戏,你将成为一艘游轮