通过nginx实现openfire集群的负载均衡
前段时间实现了openfire的集群部署,如果要在应用中实现应用我们还需要一个至关重要的工作:负载分发
我们选中的负载工具是nginx(原因很简单:开源,免费)
1、安装nginx (redhat企业版6.5 64bit环境)
到nginx官网下载最新版本文件,目前最新版本时候nginx-1.9.3.tar.gz
之所以选择最新版本是因为在新版本的nginx中已经提供了tcp负载的支持,不需要再引入其他项目;
安装步骤:
1、 使用tar 命令解压项目文件:tar -zxvf nginx-1.9.3.tar.gz
2、 进入解压后的项目跟路径下,重新编译项目: ./configure --prefix=/usr/local/nginx --with -stream
注意:
如果需要使用tcp协议的负载,在编译的时候已经要传入参数 --with -stream
系统报错,提示缺少zlib或者pcre的库,这两个库存在于系统的镜像文件中,我们根据提示将这两个库安装即可,步骤如下:
1、将镜像文件添加到虚拟机中
2、 将镜像文件挂载到路径下:
mount --bind /media/RHEL_6.5 x86_64 Disc 1 /root/redhat6.5iso
3、 使用yum命令安装缺少的类库:
yum install pcre*
yum install zlib*
3、使用make、make install 命令进行安装
先执行make命令,然后执行make install命令
4、修改配置
使用vi 编辑 /usr/local/nginx/conf/nginx.conf配置文件,将一下配置信息添加进去
stream { upstream backend { hash $remote_addr consistent; server 10.68.13.27:5222 weight=5; server 10.68.13.30:5222 weight=5; } server { listen 5222; proxy_connect_timeout 10s; #设置连接超时时长 必须 proxy_timeout 30s; #设置代理超时时长 必须 proxy_pass backend; } }
5、启动
最新版本的nginx启动命令为: /usr/local/nginx/sbin/nginx, 关闭命令为:/usr/local/nginx/sbin/nginx -s stop