手机网站支付如何制作,海阳市建设工程交易中心网站,杭州做企业网站,做电商网站注意什么问题Hapraxy是目前比较流行的一种群集调度工具#xff0c;同类群集调度工具有很多#xff0c;如LVS 和Nginx。相 比较而言#xff0c;LVS.性能最好#xff0c;但是搭建相对复杂:Nginx的 upstream 模块支持群集功能#xff0c;但是对群集节 点健康检查功能不强#xff0c;性能… Hapraxy是目前比较流行的一种群集调度工具同类群集调度工具有很多如LVS 和Nginx。相 比较而言LVS.性能最好但是搭建相对复杂:Nginx的 upstream 模块支持群集功能但是对群集节 点健康检查功能不强性能没有Haproxy好。Heproxy官方网站是http://www.haproxy.org/ 索例前置知识点
(1)HTTP请求 通过URL访问网站使用的协议是HTTP协议此类请求一般称为HTTP请求。HTTP请求的方式分 为GET方式和 POST方式。当使用浏览器访问某一个URL会根据请求URL返回状态码通常正常的 状态码为2xx.3xx(如200、301)如果出现异常会返回4xx、5xx(如400500). 例如访问http://www.test.com/a.php?ld123就是一个GET请求如果访问正常会从服 务器的日志中获取200状态码.假如此请求使用POST方式那么传递给a.php的Id参数依旧是123, 但是浏览器的URL将不会显示后面的Id123字样因此表单类或者有用户名密码等内容提交时建 议使用POST方式。不管使用哪种方式最终a.php获取的值是一样的。
(2)负载均衡常用调度算法 LVS, Haproxy. Nginx最常用的调度算法有三种如下所述
1.RR(Round Robin)。RR算法是最简单最常用的一种算法即轮询调度。例如有三个节点A、B、C.第一个用户访问会被指派到节点A第二个用户访问会被指派到节点B第三个用户访问会 被指派到节点C第四个用户访问继续指派到节点A轮询分配访问请求实现负载均衡效果。此算 法还有一种加权轮询即根据每个节点的权重轮询分配访问请求。
2.LC (Least Comections).LC 算法即最小连接数算法根据后端的节点连接数大小动态分配 前端请求。例如有三个节点A、B.C,各节点的连接数分别为A:4.B:5.C:6此时如果有第一 个用户连接请求会被指派到A上连接数变为A:5.B:5.C:6第二个用户请求会继续分配到A 上连接数变为A:6.B:5.C:6:再有新的请求会分配给B每次将新的请求指派给连接數最小的 客户端。由于实际情况下A.B.C的连接数会动态释放很难会出现一样连接数的情况因此此算 法相比较爪算法有很大改进是目前用到比较多的一种算法。
3.SH (Source Hashing).SH即基于来源访问调度算法此算法用于一些有Session 会话记录在 服务器端的场景可以基于来源的P.Cookie 等做群集调度。例如使用基于源P的群集调度算法 有三个节点A.B.C.第一个用户第一次访问被指派到了A第二个用户第一次访问被指派到了B. 当第一个用户第二次访问时会被继续指派到A.第二个用户第二次访问时依旧会被指派到B.只要负 载均衡调度髁不重启第一个用户访问都会被指派到A.第二个用户访问都会被指派到B实现群集 的调度。此调度算法好处是实现会话保持但某些尸访问最非常大时会引起负载不均衡部分节点 访问量超大影响业务使用。 (3)常见的Web群集调度器 目前常见的Web群集调度器分为软件和硬件软件通常使用开源的LVS. Haproxy, Nginx硬件 一般使用比较多的是F5也有很多人使用国内的一些产品如梭子鱼、绿盟等. 案例环境 本案例使用三台服务器模拟搭建一套Web群集拓扑图如下所示 案例实施 关闭防火墙systemctl disable firewalld --now 关闭Selinuxsetenforce 0 sed -i s/SELINUX.*/SELINUXdisabled/g /etc/selinux/config 配置IP DNS 网关nmtui 1.编译安装Nginx服务器
1搭建Nginx1使用nginx-1.12.0.tar.gz安装包进行编译安装。
[rootNginx1 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护将以只读方式挂载
[rootNginx1 ~]# yum -y install pcre-devel zlib-devel //挂载后在本地yum仓库安装[rootNginx1 ~]#useradd -M -s /sbin/nologin nginx //创建nginx用户[rootNginx1 ~]# rz -E //把源码包nginx-1.24.0.tar.gz拉进来
rz waiting to receive.[rootNginx1 ~]# tar zxf nginx-1.24.0.tar.gz //解压文件[rootNginx1 ~]# cd nginx-1.24.0/ //执行编译安装
[rootNginx1 nginx-1.24.0]# ./configure --prefix/usr/local/nginx --usernginx --groupnginx --with-http_stub_status_module
[rootNginx1 nginx-1.24.0]# make make install[rootNginx1 ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ //创建主程序链接文件[rootNginx1 ~]# echo h1This is nginx Server 192.168.55.49/h1 /usr/local/nginx/html/test.html //建立测试页面[rootNginx1 ~]# /usr/local/nginx/sbin/nginx //启动Nginx[rootNginx1 ~]# netstat -anpt | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 11121/nginx: master [rootNginx1 ~]# systemctl stop firewalld.service 为了方便实验网站没有配置域名直接使用IP地址。在客户端访问http://192.168.55.49/ test.huml测试。 (2)搭建Nginx2. 编译安装的步骤与Nginx1相同不同之处在于建立测试页面。
[rootNginx2 ~]# echo h1This is nginx Server 192.168.55.50/h1 /usr/local/nginx/html/test.html2.编译安装Haproxy
使用 haproxy-1.5.19.tar.gz安装包进行编译安装
[rootHaproxy ~]# yum -y install pcre-devel bzip2-devel //组件[rootHaproxy ~]# rz -E
rz waiting to receive. //将源码包haproxy-1.5.19.tar.gz上传拉进来[rootHaproxy ~]# tar zxf haproxy-1.5.19.tar.gz
[rootHaproxy ~]# cd haproxy-1.5.19/
[rootHaproxy haproxy-1.5.19]# make TARGETlinux26 //64位系统
[rootHaproxy haproxy-1.5.19]# make install
3.Haproxy服务器配置
1建立Haproxy的配置文件。
[rootHaproxy haproxy-1.5.19]# mkdir /etc/haproxy //创建主配置文件[rootHaproxy haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/ //将haproxy.cfg文件复制到配置文件目录2Haproxy配置项介绍。 3根据目前的群集设计将haproxy.cfg配置文件的内容修改如下。
[rootHaproxy ~]# vim /etc/haproxy/haproxy.cfg4.创建自启动脚本
[rootHaproxy haproxy-1.5.19]# mkdir /usr/share/haproxy //创建群集根目录添加haproxy系统服务
[rootHaproxy haproxy-1.5.19]# cp examples/haproxy.init /etc/init.d/haproxy
[rootHaproxy haproxy-1.5.19]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
[rootHaproxy haproxy-1.5.19]# chmod x /etc/init.d/haproxy
[rootHaproxy haproxy-1.5.19]# chkconfig --add haproxy启动服务
[rootHaproxy haproxy-1.5.19]# /etc/init.d/haproxy start
Starting haproxy (via systemctl): [ 确定 ]启动服务
[rootHaproxy haproxy-1.5.19]# systemctl start haproxy关闭防火墙浏览器可以进入
[rootHaproxy haproxy-1.5.19]# systemctl stop firewalld
5.测试Web群集 通过上面的步骤已经搭建完成Haproxy 的Web群集接下来需要验证群集是否工作正常。一 个群集一般需要具备两个特性第一个是高性能第二个是高可用
1测试高性能
在客户端使用浏览器打开http://192.168.55.47/test.html浏览器显示信息 再次打开一个新的浏览器页面访问http://192.168.55.47/test.html浏览器显示信息 2测试高可用
现在将 192.168.55.49的Nginx服务停用在客户端使用浏览器打开http://192.168.55.47/ test.html浏览器显示信息 从中可以看出当一台节点故障不会影响群集的使用这祥就满足了群集的高可用性。也可 以将192.168.1.62的Nginx服务恢复再将192.168.1.61的Nginx服务停用测试高可用性。