当前位置: 首页 > news >正文

南通网站外包建立内部网站

南通网站外包,建立内部网站,合肥网站运营,网页制作师就业班本章主要学习#xff1a; 熟悉 Haproxy 功能以常用群集配置调度算法学会Haproxy 常用配置学会 Haproxy 参数优化 简介 在前面已经学习了使用Nginx#xff0c;LVS 做负载均衡群集#xff0c;他们都具有各自的特点#xff0c;本章将要介绍另一款比较流行的群集调度工具 Hap…本章主要学习 熟悉 Haproxy 功能以常用群集配置调度算法学会Haproxy 常用配置学会 Haproxy 参数优化 简介 在前面已经学习了使用NginxLVS 做负载均衡群集他们都具有各自的特点本章将要介绍另一款比较流行的群集调度工具 Haproxy 首先介绍负载均衡常用调度算法然后介绍 Haproxy 搭建 Web 群集的方法最后 介绍 Haproxy 的参数优化和日志配置 1.1 案例分析 1.案例概述 Haproxy 是目前比较流行的一种群集调度工具同类群集调度工具有很多如 LVS 和 Nginx 相比较而言LVS 性能最好但是搭建相对复杂Nginx 的 upsteam 模块支持群集功能但是对群集节点健康检查功能不强性能没用 Haproxy 号。Haproxy 官方网站事 http://www.haproxy.org/ 本案例介绍使用 Haproxy 及 Nginx 搭建一套 Web群集 2.案例前置知识点 1HTTP请求 通过URL 访问网站的协议是http 协议此类请求一般称为http请求。http请求的方式分为 GET 方式和 POST方式。当使用浏览器访问某一个URL会更具请求 URL放回状态码通常的状态码为 2xx3xx如 200301如果出现异常放回 4xx5xx如 400500 例如访问http://www.text.com/a.php?id123就是一个GET请求如果访问正常会从服务器的日志中获取200状态码。假如此类请求使用POST方式那么传递给a.php 的id参数依旧是123但是服务器的URL 将不会显示后面的 id123字样因此表单类或这有用户名密码等内容提交时建议使用POST方式不管使用哪种方式最终 a.php 获取的值是一样的。 2负载均衡常用调度算法 LVSHaproxyNginx 最常用的调度算法有三种如下所述 RRRound RobinRR算法是最简单最常用的一种算法即轮询调度例如有三个节点ABC第一个用户访问会被指派到节点A第二个用户会被指派到节点B第三个用户访问会被指派到节点C第四个用户访问继续指派到节点A轮询分配访问请求实现负载均衡效果此算法还有一种加权轮询即根据每个节点的权重轮询分配访问请求LCLeast Connections。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 的连接数会动态释放很难会出现一样连接数的情况因此此算法相比较 rr 算法有很大改进是目前用到比较多第 3 页 共 10 页 的一种算法SHSource Hashing。SH 即基于来源访问调度算法此算法用于一些有 Session 会话记录在服务器端的场景可以基于来源的 IP、Cookie 等做群集调度。例如使用基于源 IP 的群集调度算法有三个节点 A、B、C第一个用户第一次访问被指派到了 A第二个用户第一次访问被指派到了 B当第一个用户第二次访问时会被继续指派到 A第二个用户第二次访问时依旧会被指派到 B只要负载均衡调度器不重启第一个用户访问都会被指派到 A第二个用户访问都会被指派到 B实现群集的调度。此调度算法好处是实现会话保持但某些 IP 访问量非常大时会引起负载不均衡部分节点访问量超大影响业务使用 3.常见的Web群集调度器 目前常见的Web群集调度器分为软件和硬件软件通常使用开源的 LVSHaproxyNginx硬件一般使用比较多的是F5也很多使用国内的一些产品如梭子鱼绿盟等 案例环境 1.2 案例实施 1.编译安装Nginx服务器 1搭建 Nginx1使用nginx-1.22.1.tar.gz 安装包进行编译安装 wget http://nginx.org/download/nginx-1.22.1.tar.gz //拉取软件包 [rootnode01 ~]# yum -y install pcre-devel zlib-devel [rootnode01 ~]# useradd -M -s /sbin/nologin nginx [rootnode01 ~]# tar zxvf nginx-1.22.1.tar.gz [rootnode01 ~]# cd nginx-1.22.1/ [rootnode01 nginx-1.22.1]# [rootnode01 nginx-1.22.1]# ./configure --prefix/usr/local/nginx --usernginx --groupnginx [rootnode01 nginx-1.22.1]# make make install安装完后的默认信息如下 默认安装目录/usr/local/nginx默认日志/usr/local/nginx/logs/默认监听80默认Web 目录/usr/local/nginx/html [rootnode01 ~]# cd /usr/local/nginx/html/ [rootnode01 html]# echo Server 192.168.182.101 test.html [rootnode01 html]# /usr/local/nginx/sbin/nginx [rootnode01 html]# netstat -anpt | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 10632/nginx: master [rootnode01 html]# systemctl stop firewalld为了实验方便网站没用配置域名直接实验IP地址。在客户端访问 http://192.168.182.101/test.html 测试 如图 2搭建Nginx2 编译安装的步骤与Nginx1 相同不同之处在于建立测试页面 [rootnode02 nginx-1.22.1]# cd /usr/local/nginx/html/ [rootnode02 html]# echo Server 192.168.182.102 test.html [rootnode02 html]# /usr/local/nginx/sbin/nginx [rootnode02 html]# netstat -anpt | grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 10604/nginx: master [rootnode02 html]# systemctl stop firewalld安装完成后在客户端访问 http://192.168.182.102/test.html 测试如图 2.编译安装 Haproxy 使用 haproxy-1.5.19.tar.gz 安装包进行编译安装 [rootHaproxy ~]# yum -y install pcre-devel bzip2-devel [rootHaproxy ~]# tar zxvf 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 ~]# mkdir /etc/haproxy //创建配置文件目录 [rootHaproxy ~]# cp /root/haproxy-1.5.19/examples/haproxy.cfg /etc/haproxy/ //将 haproxy.cfg 文件复制到配置文件目录 2Haproxy 配置项介绍 Haproxy 配置文件通常分为三个部分即 glodaldefault和 listenglobal 位全局配置default 位默认配置listen 为应用组件配置 global 配置项通常有下面配置参数以示例参数说明如下 globallog 127.0.0.1 local0 //配置日志记录local0为日志设备默认存放到系统日志log 127.0.0.1 local1 notice //notice 为日志级别通常有24个级别#log loghost local0 info maxconn 4096 //用户最大连接数chroot /usr/share/haproxyuid 99 //用户uidgid 99 //用户gid default 配置项默认参数一般会被应用组件继承如果在应用组件中没用特别声明将安装默认配置参数设置 defaultslog global //定义日志为 global 配置中的日志定义mode http //模式为httpoption httplog //采用http日志表格记录日志option dontlognull retries 3 //检查节点服务器失败次数连续到达三次失败则认为节点不可以redispatch //当服务器负载很高时自动结束当前队列处理比较久的连接maxconn 2000 //最大连接数contimeout 5000 //连接超时时间clitimeout 50000 //客户端超时时间srvtimeout 50000 //服务器超时时间 listen 配置项一般配置应用模块参数 listen appli4-backup 0.0.0.0:10004 //定义一个appli4-backup 的应用option httpchk /index.html //检查服务器的 index.html 文件option persist //强制将请求连接发送到已经 down 掉的服务器balance roundrobin //负载均衡调度算法使用轮询算法server inst1 192.168.114.56:80 check inter 2000 fall 3 //定义在线节点server inst2 192.168.114.56:81 check inter 2000 fall 3 backup //定义备份节点3根据目前的群集设计将haproxy.cfg 配置文件的内容修改如下 globallog 127.0.0.1 local0log 127.0.0.1 local1 notice#log loghost local0 infomaxconn 4096# chroot /usr/share/haproxyuid 99gid 99daemon#debug#quietdefaultslog globalmode httpoption httplogoption dontlognullretries 3redispatchmaxconn 2000contimeout 5000clitimeout 50000srvtimeout 50000listen webcluster 0.0.0.0:80option httpchk GET /index.htmlbalance roundrobinserver inst1 192.168.182.101:80 check inter 2000 fall 3server inst2 192.168.182.102:80 check inter 2000 fall 3 4.创建自启动脚本 [rootHaproxy haproxy]# cp ~/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy [rootHaproxy haproxy]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy [rootHaproxy haproxy]# chmod x /etc/init.d/haproxy [rootHaproxy haproxy]# chkconfig --add /etc/init.d/haproxy [rootHaproxy haproxy]# /etc/init.d/haproxy start Starting haproxy (via systemctl): [ 确定 ] [rootHaproxy haproxy]# systemctl stop firewalld5.测试Web群集 通过上面的步骤已经搭建完成Haproxy 的 Web群集接下来需要验证群集是否工作正常一个群集一般需要具备两个特性第一个是高性能第二个时高可用 1测试高性能 在客户端使用浏览器打开 http://192.168.182.100/test.html浏览器显示信息如图 再次打开 一个新的浏览器页面访问 http://192.168.182.100/text.html 浏览器显示信息如图 可以看到群集的负载均衡已经生效已经满足了群集的高性能要求 2测试高可用 现在将 192.168.182.101 的Nginx 服务停用在客户端浏览器打开 http://192.168.182.100/test.html浏览器显示信息任然如图所示 [rootnode01 html]# killall nginx [rootnode01 html]# netstat -anpt | grep nginx从中可以看出当一台节点故障不会影响群集的使用这样就满足了群集的高可用性也可以将192.168.182.101的Nginx 服务恢复再将192.168.182.102 的Nginx 服务停用测试高可用性 6.Haproxy 的日志 Haproxy 的日志默认输出到系统的 syslog 中查看起来不是非常方便为了更好的管理 Haproxy 的日志我们再生产环境中一般单独定义出来定义的方法如下 1修改Haproxy 配置文件中关于日志配置项的选项将原有的日志配置更改为以下配置 [rootHaproxy ~]# vim /etc/haproxy/haproxy.cfg globallog 127.0.0.1 local0log 127.0.0.1 local1 notice#log loghost local0 infomaxconn 4096# chroot /usr/share/haproxyuid 99gid 99daemon#debug#quietlog /dev/log local0 info //增加内容log /dev/log local0 notice //增加内容这两行配置放到 Haproxy 的 global 配置项中主要是将 Haproxy 的 info 及 notice 日志分别接入到不同的日志文件中 重启 Haproxy完成Haproxy 配置 [rootHaproxy ~]# /etc/init.d/haproxy restart Restarting haproxy (via systemctl): [ 确定 ] [rootHaproxy ~]# 2修改 rsyslog 配置 为了便于管理将 Haproxy 相关的配置独立定义到 haproxy.conf 并放到 /etc/rsyslog.d 下rsyslog 启动时会自动加载此目录下的所有配置文件 [rootHaproxy ~]# touch /etc/rsyslog.d/haproxy.conf [rootHaproxy ~]# vim /etc/rsyslog.d/haproxy.conf [rootHaproxy ~]# cat /etc/rsyslog.d/haproxy.conf if ($programname haproxy and $syslogseverity-text info) then -/var/log/haproxy/haproxy-info.log~ if ($programname haproxy and $syslogseverity-text notice) then -/var/log/haproxy/haproxy-notice.log~ [rootHaproxy ~]# 这部分配置是将Haproxy 的 info 日志记录到/var/log/haproxy-info.log 下将 notice 日志记录到 /var/log/haproxy/haproxy-notice.log 下其中 表示当日志写入日志文件后rsyslog 停止处理这个信息。这里配置的语法是使用 rainerscript 脚本语言写的 保持配置文件并重启 rsyslog 服务完成rsyslog 配置 [rootHaproxy ~]# systemctl restart rsyslog.service 3测试日志信息 在客户端访问 http://192.168.182.100/test.html 后可以使用 tail -f /var/log/haproxy/haproxy-notice.log 即时查看Haproxy 的访问请求日志信息 [rootHaproxy ~]# tail -f /var/log/haproxy/haproxy-info.log Jan 16 11:53:21 Haproxy haproxy[11192]: 192.168.182.1:65351 [16/Jan/2024:11:53:21.606] webcluster webcluster/inst1 2/0/0/0/2 200 259 - - ---- 1/1/0/1/0 0/0 GET /test.html HTTP/1.1 Jan 16 11:53:21 Haproxy haproxy[11192]: 192.168.182.1:65351 [16/Jan/2024:11:53:21.609] webcluster webcluster/inst2 209/0/0/0/209 200 259 - - ---- 2/2/0/1/0 0/0 GET /test.html HTTP/1.1 7. Haproxy 的参数优化 关于Haproxy 的参数优化以下列举了几个关键的参数并对各参数的生产环境的优化建议做了说明
http://www.pierceye.com/news/623260/

相关文章:

  • 保康网站建设psd转wordpress主题
  • 网站开发远程服务器如何设置三河市网站建设
  • 网站开发与运营方向已经有域名 怎么做网站
  • 绍兴网站建设专业的公司整站优化网站报价
  • 揭阳网站制作套餐邯郸市建设局网站材料下载入口
  • 整站seo公司做盗版小说网站赚钱嘛
  • 网站文章优化怎么做网站快速备案安全吗
  • dede网站本地访问速度慢哪个app可以免费下载ppt模板
  • 网站改版方案流程龙华网站建设主要工作
  • 福田网站制作报价百度推广工作怎么样
  • 常熟智能网站开发蚌埠市建设工程质监站网站
  • 网站做水印有没有影响吗怎么设计公司网页
  • 做视频推广有哪几个网站wordpress 多重筛选插件
  • 电脑网站怎样给网页做适配官方正版浏览器
  • php 可以自己做网站吗网站建设尾款如何做会计分录
  • app开发哪家公司好东莞网站优化多少钱
  • 企业网站最重要的访问对象是谈一谈对网站开发的理解
  • 国外网站做问卷怎么做免费公司网站
  • 内容型网站有哪些企业网站常见问题
  • 毕节市住房和城乡建设局网站做wordpress总结
  • 桐城市建设局网站wordpress主题美容
  • 海阳市城建设局网站深圳高端设计公司名单
  • 高端网站制作系统网站开发的背景和意义
  • 假电影网站做注册长春seo代理计费
  • 网站代运营公司怎么做vip电影网站
  • 南京网站南京网站设计制作公司提高工作效率
  • 大连网站制作最好的公司萍乡商城网站建设
  • 做网站有2个前提条件_一个是网站班级优化大师app下载学生版
  • 自己做网站广告法wordpress自带评论表情
  • 苏州市城乡和建设局网站首页在线crm系统价格