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

南京网站建设方案中国菲律宾历史战绩

南京网站建设方案,中国菲律宾历史战绩,漳州做网站喊多少钱,建设一个网站需要条件day02 day02KeepAlived高可用集群配置高可用的web集群监控本机80端口#xff0c;实现主备切换实现原理实施配置高可用、负载均衡的web集群配置高可用、负载均衡HAProxy配置haproxy负载均衡调度器比较LVS#xff08;Linux Virtual Server#xff09;NginxHAProxy KeepAlive…day02 day02KeepAlived高可用集群配置高可用的web集群监控本机80端口实现主备切换实现原理实施配置高可用、负载均衡的web集群配置高可用、负载均衡HAProxy配置haproxy负载均衡调度器比较LVSLinux Virtual ServerNginxHAProxy KeepAlived高可用集群 keepalived用于实现高可用集群它的工作原理就是VRRP虚拟冗余路由协议 配置高可用的web集群 环境说明 web1eth0-192.168.88.100/24web2eth0-192.168.88.200/24 配置keepalived  # 在两台web服务器上安装keepalived [rootpubserver cluster]# vim 07-install-keepalived.yml --- - name: install keepalived hosts: webservers tasks: - name: install keepalived   # 安装keepalived yum: name: keepalived state: present [rootpubserver cluster]# ansible-playbook 07-install-keepalived.yml # 修改配置文件 [rootweb1 ~]# vim /etc/keepalived/keepalived.conf 12   router_id web1    # 设置本机在集群中的唯一识别符 13   vrrp_iptables     # 自动配置iptables放行规则 ... ... 20 vrrp_instance VI_1 { 21     state MASTER           # 状态主为MASTER备为BACKUP 22     interface eth0         # 网卡 23     virtual_router_id 51   # 虚拟路由器地址 24     priority 100           # 优先级 25     advert_int 1           # 发送心跳消息的间隔 26     authentication { 27         auth_type PASS     # 认证类型为共享密码 28         auth_pass 1111     # 集群中的机器密码相同才能成为集群 29     }   30     virtual_ipaddress { 31         192.168.88.80/24    # VIP地址 32     }   33 } # 删除下面所有行 [rootweb1 ~]# systemctl start keepalived # 等几秒服务完全启动后可以查看到vip [rootweb1 ~]# ip a s eth0 | grep 88 inet 192.168.88.100/24 brd 192.168.88.255 scope global noprefixroute eth0 inet 192.168.88.80/24 scope global secondary eth0 # 配置web2 [rootweb1 ~]# scp /etc/keepalived/keepalived.conf 192.168.88.200:/etc/keepalived/ [rootweb2 ~]# vim /etc/keepalived/keepalived.conf 12   router_id web2          # 改id 13   vrrp_iptables ... ... 20 vrrp_instance VI_1 { 21     state BACKUP           # 改状态 22     interface eth0 23     virtual_router_id 51 24     priority 80            # 改优先级 25     advert_int 1 26     authentication { 27         auth_type PASS 28         auth_pass 1111 29     } 30     virtual_ipaddress { 31         192.168.88.80/24 32     } 33 } # 启动服务 [rootweb2 ~]# systemctl start keepalived # 查看地址eth0不会出现vip [rootweb2 ~]# ip a s | grep 88 inet 192.168.88.200/24 brd 192.168.88.255 scope global noprefixroute eth0 # 测试现在访问88.80看到是web1上的内容 [rootclient1 ~]# curl http://192.168.88.80 Welcome from web1 # 模拟web1出现故障 [rootweb1 ~]# systemctl stop keepalived.service # 测试现在访问88.80看到是web2上的内容 [rootclient1 ~]# curl http://192.168.88.80 Welcome from web2 # 在web2上查看vip可以查看到vip 192.168.88.80 [rootweb2 ~]# ip a s | grep 88 inet 192.168.88.200/24 brd 192.168.88.255 scope global noprefixroute eth0 inet 192.168.88.80/24 scope global secondary eth0 监控本机80端口实现主备切换 实现原理 配置高可用的web集群时Keepalived只为服务器提供了VIPKeepalived不知道服务器上运行了哪些服务MASTER服务器可以通过跟踪脚本监视本机的80端口一旦本机80端口失效则将VIP切换至BACKUP服务器Keepalived对脚本的要求是退出码为0表示访问成功退出码为1表示失败。 实施  # 1. 在MASTER上创建监视脚本 [rootweb1 ~]# vim /etc/keepalived/check_http.sh #!/bin/bash ss -tlnp | grep :80 /dev/null exit 0 || exit 1 [rootweb1 ~]# chmod x /etc/keepalived/check_http.sh # 2. 修改MASTER配置文件使用脚本 [rootweb1 ~]# vim /etc/keepalived/keepalived.conf 1 ! Configuration File for keepalived 2 3 global_defs { ...略... 18 } 19 20 vrrp_script chk_http_port {  # 定义监视脚本 21     script /etc/keepalived/check_http.sh 22     interval 2   # 脚本每隔2秒运行一次 23 } 24 25 vrrp_instance VI_1 { 26     state MASTER 27     interface eth0 28     virtual_router_id 51 29     priority 100 30     advert_int 1 31     authentication { 32         auth_type PASS 33         auth_pass 1111 34     } 35     virtual_ipaddress { 36         192.168.88.80/24 37     } 38     track_script {    # 引用脚本 39         chk_http_port 40     } 41 } # 3. 重起服务 [rootweb1 ~]# systemctl restart keepalived.service # 4. 测试关闭web1的nginx后VIP将会切换至web2 [rootweb1 ~]# systemctl stop nginx.service [rootweb1 ~]# ip a s | grep 88 inet 192.168.88.100/24 brd 192.168.88.255 scope global noprefixroute eth0 [rootweb2 ~]# ip a s | grep 88 inet 192.168.88.200/24 brd 192.168.88.255 scope global noprefixroute eth0 inet 192.168.88.80/24 scope global secondary eth0 # 5. 当MASTER的nginx修复后VIP将会切换回至web1 [rootweb1 ~]# systemctl start nginx.service [rootweb1 ~]# ip a s | grep 88 inet 192.168.88.100/24 brd 192.168.88.255 scope global noprefixroute eth0 inet 192.168.88.80/24 scope global secondary eth0 [rootweb2 ~]# ip a s | grep 88 inet 192.168.88.200/24 brd 192.168.88.255 scope global noprefixroute eth0 配置高可用、负载均衡的web集群 环境说明LVS-DR模式 client1eth0-192.168.88.10lvs1eth0-192.168.88.5lvs2eth0-192.168.88.6web1eth0-192.168.88.100web2eth0-192.168.88.200 环境准备 # 关闭2台web服务器上的keepalived并卸载 [rootpubserver cluster]# vim 08-rm-keepalived.yml --- - name: remove keepalived hosts: webservers tasks: - name: stop keepalived       # 停服务 service: name: keepalived state: stopped - name: uninstall keepalived   # 卸载 yum: name: keepalived state: absent [rootpubserver cluster]# ansible-playbook 08-rm-keepalived.yml # 创建新虚拟机lvs2 [rootmyhost ~]# vm clone lvs2 # 为lvs2设置ip地址 [rootmyhost ~]# vm setip lvs2 192.168.88.6 # 连接 [rootmyhost ~]# ssh 192.168.88.6 配置高可用、负载均衡 在2台web服务器的lo上配置vip在2台web服务器上配置内核参数删除lvs1上的eth0上的VIP地址。因为vip将由keepalived接管 [rootpubserver cluster]# vim 09-del-lvs1-vip.yml --- - name: del lvs1 vip hosts: lvs1 tasks: - name: rm vip lineinfile:            # 在指定文件中删除行 path: /etc/sysconfig/network-scripts/ifcfg-eth0 regexp: IPADDR2   # 正则匹配 state: absent notify: restart system handlers: - name: restart system shell: reboot [rootpubserver cluster]# ansible-playbook 09-del-lvs1-vip.yml # 查看结果 [rootlvs1 ~]# ip a s eth0 | grep 88 inet 192.168.88.5/24 brd 192.168.88.255 scope global noprefixroute eth0 删除lvs1上的lvs规则。因为lvs规则将由keepalived创建 [rootlvs1 ~]# ipvsadm -Ln   # 查看规则 [rootlvs1 ~]# ipvsadm -D -t 192.168.88.15:80 在lvs上配置keepalived # 在主机清单文件中加入lvs2的说明 [rootpubserver cluster]# vim inventory ...略... [lb] lvs1 ansible_host192.168.88.5 lvs2 ansible_host192.168.88.6 ...略... # 安装软件包 [rootpubserver cluster]# cp 01-upload-repo.yml 10-upload-repo.yml --- - name: config repos.d hosts: lb tasks: - name: delete repos.d file: path: /etc/yum.repos.d state: absent - name: create repos.d file: path: /etc/yum.repos.d state: directory mode: 0755 - name: upload local88 copy: src: files/local88.repo dest: /etc/yum.repos.d/ [rootpubserver cluster]# ansible-playbook 10-upload-repo.yml [rootpubserver cluster]# vim 11-install-lvs2.yml --- - name: install lvs keepalived hosts: lb tasks: - name: install pkgs    # 安装软件包 yum: name: ipvsadm,keepalived state: present [rootpubserver cluster]# ansible-playbook 11-install-lvs2.yml [rootlvs1 ~]# vim /etc/keepalived/keepalived.conf 12   router_id lvs1       # 为本机取一个唯一的id 13   vrrp_iptables        # 自动开启iptables放行规则 ... ... 20 vrrp_instance VI_1 { 21     state MASTER 22     interface eth0 23     virtual_router_id 51 24     priority 100 25     advert_int 1 26     authentication { 27         auth_type PASS 28         auth_pass 1111 29     }   30     virtual_ipaddress { 31         192.168.88.15       # vip地址与web服务器的vip一致 32     }   33 } # 以下为keepalived配置lvs的规则 35 virtual_server 192.168.88.15 80 {   # 声明虚拟服务器地址 36     delay_loop 6     # 健康检查延迟6秒开始 37     lb_algo wrr      # 调度算法为wrr 38     lb_kind DR       # 工作模式为DR 39     persistence_timeout 50  # 50秒内相同客户端调度到相同服务器 40     protocol TCP     # 协议是TCP 41 42     real_server 192.168.88.100 80 {   # 声明真实服务器 43         weight 1          # 权重 44         TCP_CHECK {       # 通过TCP协议对真实服务器做健康检查 45             connect_timeout 3 # 连接超时时间为3秒 46             nb_get_retry 3    # 3次访问失败则认为真实服务器故障 47             delay_before_retry 3  # 两次检查时间的间隔3秒 48         } 49     } 50     real_server 192.168.88.200 80 { 51         weight 2 52         TCP_CHECK { 53             connect_timeout 3 54             nb_get_retry 3 55             delay_before_retry 3 56         } 57     } 58 } # 以下部分删除 # 启动keepalived服务 [rootlvs1 ~]# systemctl start keepalived # 验证 [rootlvs1 ~]# ip a s eth0 | grep 88 inet 192.168.88.5/24 brd 192.168.88.255 scope global noprefixroute eth0 inet 192.168.88.15/32 scope global eth0 [rootlvs1 ~]# ipvsadm -Ln   # 出现规则 IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags - RemoteAddress:Port           Forward Weight ActiveConn InActConn TCP  192.168.88.15:80 wrr persistent 50 - 192.168.88.100:80           Route   1      0          0         - 192.168.88.200:80           Route   2      0          0     # 客户端连接测试 [rootclient1 ~]# for i in {1..6}; do curl http://192.168.88.15/; done Welcome from web2 Welcome from web2 Welcome from web2 Welcome from web2 Welcome from web2 Welcome from web2 # 为了效率相同的客户端在50秒内分发给同一台服务器。为了使用同一个客户端可以看到轮询效果可以注释配置文件中相应的行后重启keepavlied。 [rootlvs1 ~]# vim 39 /etc/keepalived/keepalived.conf ...略... # persistence_timeout 50 ...略... [rootlvs1 ~]# systemctl restart keepalived.service # 在客户端验证 [rootclient1 ~]# for i in {1..6}; do curl http://192.168.88.15/; done Welcome from web2 Welcome from web1 Welcome from web2 Welcome from web2 Welcome from web1 Welcome from web2 # 配置LVS2 [rootlvs1 ~]# scp /etc/keepalived/keepalived.conf 192.168.88.6:/etc/keepalived/ [rootlvs2 ~]# vim /etc/keepalived/keepalived.conf 12   router_id lvs2 21     state BACKUP 24     priority 80 [rootlvs2 ~]# systemctl start keepalived [rootlvs2 ~]# ipvsadm -Ln   # 出现规则 IP Virtual Server version 1.2.1 (size4096) Prot LocalAddress:Port Scheduler Flags - RemoteAddress:Port           Forward Weight ActiveConn InActConn TCP  192.168.88.15:80 wrr - 192.168.88.100:80           Route   1      0          0         - 192.168.88.200:80           Route   2      0          0         验证 # 1. 验证真实服务器健康检查 [rootweb1 ~]# systemctl stop nginx [rootlvs1 ~]# ipvsadm -Ln   # web1在规则中消失 [rootlvs2 ~]# ipvsadm -Ln [rootweb1 ~]# systemctl start nginx [rootlvs1 ~]# ipvsadm -Ln   # web1重新出现在规则中 [rootlvs2 ~]# ipvsadm -Ln # 2. 验证lvs的高可用性 [rootlvs1 ~]# shutdown -h now   # 关机 [rootlvs2 ~]# ip a s | grep 88     # 可以查看到vip inet 192.168.88.6/24 brd 192.168.88.255 scope global noprefixroute eth0 inet 192.168.88.15/32 scope global eth0 # 客户端访问vip依然可用 [rootclient1 ~]# for i in {1..6}; do curl http://192.168.88.15/; done Welcome from web1 Welcome from web2 Welcome from web2 Welcome from web1 Welcome from web2 Welcome from web2 HAProxy 也是一款实现负载均衡的调度器 适用于负载特别大的web站点 HAProxy的工作模式 mode http只适用于web服务mode tcp适用于各种服务mode health仅做健康检查很少使用 配置haproxy 环境准备 client1eth0 - 192.168.88.10HAProxyeth0 - 192.168.88.5web1eth0 - 192.168.88.100web2eth0 - 192.168.88.200 初始化配置   # 关闭192.168.88.6 [rootlvs2 ~]# shutdown -h now # 配置192.168.88.5为haproxy服务器 [rootpubserver cluster]# vim 12-config-haproxy.yml --- - name: config haproxy hosts: lvs1 tasks: - name: rm lvs keepalived     # 删除软件包 yum: name: ipvsadm,keepalived state: absent - name: rename hostname       # 修改主机名 shell: hostnamectl set-hostname haproxy1 - name: install haproxy       # 安装软件包 yum: name: haproxy state: present [rootpubserver cluster]# ansible-playbook 12-config-haproxy.yml # web服务器不需要配置vip不需要改内核参数。但是存在对haproxy也没有影响。 配置haproxy # 修改配置文件 [roothaproxy1 ~]# vim /etc/haproxy/haproxy.cfg # 配置文件中global是全局配置default是缺省配置如果后续有和default相同的配置default配置将会被覆盖。 # 配置文件中frontend描述haproxy怎么和用户交互backend描述haproxy怎么和后台应用服务器交互。这两个选项一般不单独使用而是合并到一起名为listen。 # 将64行之后全部删除写入以下内容 64 #--------------------------------------------------------------------- 65 listen myweb  # 定义虚拟服务器 66         bind 0.0.0.0:80     # 监听在所有可用地址的80端口 67         balance roundrobin  # 定义轮询调度算法 # 对web服务器做健康检查2秒检查一次如果连续2次检查成功认为服务器是健康的如果连续5次检查失败认为服务器坏了 68         server web1 192.168.88.100:80 check inter 2000 rise 2 fall 5 69         server web2 192.168.88.200:80 check inter 2000 rise 2 fall 5 70 71 listen stats  # 定义虚拟服务器 72         bind 0.0.0.0:1080       # 监听在所有可用地址的1080端口 73         stats refresh 30s       # 设置监控页面自动刷新时间为30秒 74         stats uri /stats        # 定义监控地址是/stats 75         stats auth admin:admin  # 监控页面的用户名和密码都是admin # 启服务 [roothaproxy1 ~]# systemctl start haproxy.service # 使用firefox访问监控地址 http://192.168.88.5:1080/stats # 客户端访问测试 [rootclient1 ~]# for i in {1..6}; do curl http://192.168.88.5/; done Welcome from web2 Welcome from web1 Welcome from web2 Welcome from web1 Welcome from web2 Welcome from web1 # client1上使用ab访问 [rootclient1 ~]# yum install -y httpd-tools [rootclient1 ~]# ab -n1000 -c200 http://192.168.88.5/ 监控地址 http://192.168.88.5:1080/stats如下 Queue队列长度。Cur当前队列长度Max最大队列长度Limit限制长度Session rate会话率每秒钟的会话数Sessions会话数Bytes字节数。In收到的字节数Out发出的字节数Denied拒绝。Req请求Resp响应Errors错误Warning警告Status状态LastChk上一次检查。L4OK第四层tcp检查通过Wght权重 负载均衡调度器比较 LVS适用于需要高并发性和稳定性的场景Nginx适用于静态文件服务和反向代理等应用层负载均衡场景HAProxy则具备较为丰富的功能和灵活性适用于多种负载均衡场景。 LVSLinux Virtual Server 优点 高性能LVS使用Linux内核中的IP负载均衡技术能够实现非常高的并发处理能力。稳定性LVS经过长时间的实践应用成熟稳定被广泛使用。可用性支持高可用性的配置可以实现故障自动切换提供无中断的服务。灵活性可根据需要采用多种负载均衡算法如轮询、加权轮询、哈希等。 缺点 配置复杂相对于其他两个技术LVS的配置相对较为复杂需要更深入的了解和配置。功能相对局限LVS主要是一种传输层负载均衡技术无法像Nginx和HAProxy那样对应用层协议进行处理。 Nginx 优点 高性能Nginx采用了基于事件驱动的异步非阻塞架构能够处理大量并发连接。负载均衡Nginx具备内置的负载均衡功能可以根据配置进行请求的转发。丰富的功能Nginx支持反向代理、静态文件服务、缓存、SSL等在Web服务器领域有很广泛的应用。 缺点 功能相对较少相对于LVS和HAProxyNginx在负载均衡算法和健康检查等方面的功能相对较少。限制于应用层协议Nginx只能对HTTP和HTTPS等应用层协议进行处理无法处理其他协议。 HAProxy 优点 灵活性HAProxy支持丰富的负载均衡算法和会话保持方式可以根据需求进行灵活配置。完整的功能HAProxy支持高可用性配置、健康检查、故障恢复、SSL等功能在负载均衡领域应用广泛。高性能HAProxy性能优良能够处理大量并发连接并且支持异步IO模型。 缺点 内存占用相对于Nginx和LVSHAProxy在处理大量连接时消耗的内存稍高一些。高可用性HAProxy需要借助额外的工具来实现高可用性例如Keepalived。 知识点思维导图https://flowus.cn/share/7875c0e1-ebbd-4dad-aa7e-f40e6ed6c6d3
http://www.dnsts.com.cn/news/53946.html

相关文章:

  • 低价建站在哪里买线上教育培训机构十大排名
  • 做招聘的h5用哪个网站宇舶手表网站
  • 用wordpress建站wordpress js特效
  • 深圳网站优化费用科技网站建设
  • 备案用网站建设方案建设信用卡手机银行官方网站
  • 室内设计网站 知乎wordpress用户注册卡慢
  • 网站建设开发做网站吧龙华网站建设招聘
  • 网站页面设计主要包括西安注册公司在哪个网站
  • 做网站的心得体会毕业设计做网站答辩
  • 剪辑素材网站免费百度app
  • 搜狗推广做网站要钱吗asp网站开发基础
  • 做个网站跳转链接怎么做服饰网站建设
  • 如何优化企业网站成都网站建设专业乐云seo
  • dw网站建设教程视频教程wordpress实现投稿功能
  • 南涧县城乡建设局网站wordpress微信打赏
  • 东莞住房和建设局网站建设路小学查分网站
  • 上弘科技网站建设网站经营性备案需要什么资料
  • 建一个网站做cpa联盟东至网站制作
  • 网站内容收费网站做cpa
  • 小视频做网站怎么赚钱网站开发入那个科目
  • 上传文档的网站广州建设职业培训学校
  • 桂林出网站网投网站制作
  • 北京市住房与城乡建设厅网站长沙网站制作哪家好
  • 地税局网站怎么做变更专业做网站厂家
  • 杭州p2p网站建设wordpress简单个人主题
  • 网易云课堂的网站建设特点国内做网站建设知名的公司
  • 在线员工后台网站建设内置wordpress主机
  • 重庆触摸屏_电子商务网站建设做简历那些网站比较好
  • 存量房交易网站建设应用市场app下载安装到手机
  • 做网站的软件是是什么迅腾网络网站建设有限公司