作者文章

fwq

FWQ
服务器教程
haproxy中与stats相关的配置项
本文主要针对在haproxy中,出现与stats相关的配置项,做统一的配置说明。与stats的相关的众多配置项出现在不同的模块、语法内,主要包括global、bind、server等。 一、global stats bind-process [ all | odd | even | <number 1-64>[-<number 1-64>] ] … stats socket [<address:port>|<path>] [param*] unix-bind [ prefix <prefix> ] [ mode <mode> ] [ user…
2024-11-19 阅读全文 →
FWQ
服务器教程
haproxy中的Proxies段的配置
在Haproxy中的代理的配置包括4个模块,defaults、listen、frontend、backend。   defaults:用于为所有其它配置段提供默认参数,listen、frontend、backend将使用defaults中的设置,如果想通的参数被重复设置,那么listen、frontend、backend的优先级高于defaults. frontend:监听客户端的链接。 backend:代理的后端服务器。 listen:包括监听客户端和代理的后端服务器,是一个完整的代理的模块,通常使用在tcp的模式中。 Tips 1:所有的代理名称是由大小字母、数字、:、-、_ 组成,且不区分大小写。 Tips 2:如果使用相同的代理名称,那么使用haproxy -f [confFile] -c 命令检查,会报错。 一、前后端连接模型 KAL: keep alive( option http-keep-alive ),这是默认的模式,所有的请求和响应都会被 HAProxy 处理,且允许在没有请求和响应时保持空闲的连接 TUN:tunnel( option http-tunnel ):这是…
2024-11-19 阅读全文 →
FWQ
网站开发
Haproxy中的acl的详解
Haproxy 能够从请求报文,响应报文,从客户端或者服务端信息,从表,环境信息等等中提取数据。提取这样的数据的动作我们称之为获取样本。进行检索时,这些样本可以用来实现各种目的,比如作为粘滞表的键,最常用的用途是,根据预定义的模式来进行匹配。访问控制列表(ACL)提供一个灵活方案进行内容切换,或者在从请求,响应,任何环境状态中提取的数据基础之上做出决策。控制列表的原则很简单:   从数据流,表,环境中提取数据样本 对提取的样本可选地应用格式转换 对一个样本应用一个或多个模式匹配 当模式匹配样本时才执行动作 执行的动作通常是阻断请求,选择一个后端服务器或者添加一个HTTP首部 需要提醒的是,获取的样本数据不光可以使用在acl中,也可以使用别处,例如记录log中 定义ACL的语法为: acl <aclname> <criterion> [flags] [operator] [<value>] ... 这样一条语句建立了一个acl 测试; 这些测试应用在请求或响应中被”标准”< criterion > 部分所指定的内容,而且可以指定[ flags] 进行特性调整,有些< criterion > 支持操作符[operator]…
2024-11-19 阅读全文 →
FWQ
服务器教程
虚拟路由器冗余协议【原理篇】VRRP详解
为什么要使用VRRP技术 我们知道,为了实现不同子网之间的设备通信,需要配置路由。目前常用的指定路由方法有两种: 第一种是通过路由协议 :RIP、OSPF动态学习 第二种是通过静态路由: 对终端PC机配置静态路由。   这两种路由各有各的优缺点: 第一种路由可以自动寻找最优路径,邻居路由也可以通过学习来获得路由表,但是动态路由占用线路带宽和CPU处理时间。 第二种路由是不需要CPU处理时间同样也不占用线路带宽,但是这个路由需要对终端的PC机进行配置网关来实现,工作量是比较大的。 对于以上的两种路由在现在来说都是广泛应用的。 我们现在只来分析静态路由的缺点,因为VRRP技术就是使用在静态路由上,而不是动态路由上。对于静态路由来说,对终端PC机配置默认网关。如果作为默认网关的路由器出现故障,所有使用该网关为下一跳的主机的通信是要中断的。如下图所示; 在上图中,主机A—D都配置了一个默认的网关:10.1.1.1,网关路由的下一跳指向主机所在网段内的一个路由器RouterA,RouterA将报文发送到外网,但是如果现在RouterA坏掉了,那么所有的主机将无法与其他网段进行通信了。 为了解决以上的问题,我们可以加一个路由器RouterB,如下图所示: 当RouterA坏掉时,所有的PC机将网关切换到RouterB上的网关。这样就实现了路由器的备份。这个技术就是VRRP技术—虚拟路由器冗余协议 VRRP简介(转发机制) 1. VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)将可以承担网关功能的路由器加入到备份组中,形成一台虚拟路由器,由VRRP的选举机制决定哪台路由器承担转发任务,局域网内的主机只需将虚拟路由器配置为缺省网关 2. VRRP是一种容错协议,在提高可靠性的同时,简化了主机的配置。在具有多播或广播能力的局域网(如以太网)中,借助VRRP 能在某台设备出现故障时仍然提供高可靠的缺省链路,有效避免单一链路发生故障后网络中断的问题,而无需修改动态路由协议、路由发现协议等配置信息 3. VRRP协议的实现有VRRPv2和VRRPv3两个版本,VRRPv2于IPv4,VRRPv3基     于IPv6 4.…
2024-11-19 阅读全文 →
FWQ
服务器教程
Keepalived的安装与启动
官方的下载地址:http://www.keepalived.org/download.html   一、安装 # tar xzf keepalived-1.3.4.tar.gz # cd keepalived-1.3.4 # ./configure --prefix=/usr/local/keepalived/ # make && make install Tips 1:安装过程中提示:*** WARNING – this build will not support IPVS…
2024-11-19 阅读全文 →
FWQ
服务器教程
Keepalived的配置详解
在初次安装后,在安装目录有个磨人的配置文件 ./etc/keepalived/keepalived.conf,将其复制到./etc/keepalived.conf,如果需要更多的配置示例,在./etc/keepalived/sample下有很多,可以借鉴。   一个功能比较完整的常用的keepalived配置文件,主要包含三块:全局定义块、VRRP实例定义块和虚拟服务器定义块。全局定义块是必须的,如果keepalived只用来做ha,虚拟服务器是可选的。下面是一个功能比较完整的配置文件模板: 一、内核参数 检查相关的内核参数 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.enp0s3.arp_announce = 2 net.ipv4.conf.enp0s8.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.default.arp_ignore = 1 net.ipv4.conf.lo.arp_ignore…
2024-11-19 阅读全文 →
FWQ
服务器教程
Keepalived之vrrp_script总结
通常情况下,利用keepalived做热备,其中一台设置为master,一台设置为backup。当master出现异常后,backup自动切换为master。当backup成为master后,master恢复正常后会再次抢占成为master,导致不必要的主备切换。因此可以将两台keepalived初始状态均配置为backup,设置不同的优先级,优先级高的设置nopreempt解决异常恢复后再次抢占的问题。   然而keepalived只能做到对网络故障和keepalived本身的监控,即当出现网络故障或者keepalived本身出现问题时,进行切换。但是这些还不够,我们还需要监控keepalived所在服务器上的其他业务进程,根据业务进程的运行状态决定是否需要进行主备切换。这个时候,我们可以通过编写脚本对业务进程进行检测监控。 例如:编写个简单脚本查看haproxy进程是否存活. #!/bin/bash COUNT=`ps -C nginx --no-header | wc -l` if [ $COUNT -gt 0 ];then exit 0 else /etc/init.d/keepalived stop exit 1 fi 在keepalived的配置文件中增加相应配置项 vrrp_script…
2024-11-19 阅读全文 →
FWQ
服务器教程
keepalived之负载均衡及服务器集群
在互连网应用技术里,负载均衡一直是热门话题,本书讨论的负载均衡技术,包括但不限于负 载均衡本身。使用负载均衡技术主要的目的包括如下几点:   系统高可用性:组成系统的某些设备或部件失效,并不会影响正常的服务。 系统可扩展性:用户的增加,引起访问数乃至流的增加,这种情形下,需要对系统进行扩容,以应对这种快速增长。对于提供高可用服务的互联网网站,其对可扩展的基本要求就是在保持系统服务不终止的情况下,透明的扩充容 ,即用户不知道扩容的存在, 或者说是扩容不对现有的服务产生任何负面作用。这些扩展主要包括:带宽扩展、服务 器扩展、存储容扩展、数据库扩展等,当然也包括主机增加内存等方面的扩展。 负载均衡能力:一个应用或服务由数个物理服务器提供,并且每个物理服务器运行的应用或服务是相同的,我们可以让用户的访问通过某种控制策略,把负载分摊到不同的物理服务器,从而保持每个物理服务器有比较合理的负载。当整个系统的负载趋于饱和时,通过增加物理服务器和扩充物理带宽来解决这个麻烦。增加物理服务器以后,系统的负载情况将重新在所有集群的物理服务器之间按照指定的算法重新达到新的均衡。 一个完整的负载均衡项目,一般由虚拟服务器、故障隔离及失败切换 3 个功能框架所组成。 虚拟服务器 虚拟服务器是负载均衡体系的基本架构,它分两层结构:转发器(Director)和真实服务器。图 6-1 为虚拟服务器的结构示意。 为什么称虚拟服务器?因为从用户的角度看来,似乎只是一个服务器在提供服务。虚拟服务 器最主要的功能是提供包转发和负载均衡,这个功能可以通过撰写 ipvsadm 脚本具体实现。 虚拟服务器项目由章文嵩博士所贡献,目前已被添加到各种 linux 发行版的内核。 故障隔离 故障隔离指虚拟服务器中的某个真实服务器(或某几个真实服务器)失效或发生故障,系统将自动把失效的服务器从转发队列中清理出去,从而保证用户访问的正确性;另一方面,当实效的服务器被修复以后,系统再自动地把它加入转发队列。 失败切换 失败切换,这是针对负载均衡器 Director…
2024-11-19 阅读全文 →
FWQ
服务器教程
LVS中的ipvsadm的安装
Ipvs 具体实现是由 ipvsadm 这个程序来完成,因此判断一个系统是否具备 ipvs 功能,只需要 察看 ipvsadm 程序是否被安装。察看 ipvsadm 程序最简单的办法就是在任意路径执行命令 ipvsadm。表 6-1 为安装 ipvsadm 及未安装 ipvsadm 的输出对比。   执行 ipvsadm 后的输出 未安装 ipvsadm -bash: ipvsadm: command not…
2024-11-19 阅读全文 →
FWQ
Docker教程
Git 教程新手入门笔记
看了一些Git的教程,有一些指令还是让人怦然心动的,生怕自己忘记了,这里做一个笔记,看到这个笔记能够马上想起来。如果需要对Git详细了解的,可以去官方网站查看,这里贴出一个官方中文版的电子书:https://git-scm.com/book/zh/v2   关于Git 的历史由来,以及于集中式版本控制系统(如svn、cvs)的区别,以及安装git,这里就不介绍了。补充下,历史由来其实很有意思,呵呵!! 一、初始化本地版本库 初始化一个Git仓库,使用 git init 命令。 添加文件到Git仓库,分两步: 使用命令git add <file>,注意,可反复多次使用,添加多个文件;也可以使用 git add * ,添加所有文件。 使用命令git commit,完成。或者使用 git commit -a,提交所有文件,包括未 git add 的文件。 二、版本回退 使用 git log 查看操作记录,如果日志内容很多可以使用 git log –pretty=oneline 使用git reflog查看HEAD的命令的历史记录。 使用git…
2024-11-19 阅读全文 →