当前位置: 首页 > Linux

CENTOS7高性能Linux集群haproxy通过yum配置!安装!使用!HAProxy配置文件详解

时间:2023-04-06 03:38:35 Linux

图片参考:https://blog.csdn.net/weixin_...Haproxy配置永久修改名:便于区分虚拟机!haproxy:hostnamectlset-hostnamehaproxyWeb1:hostnamectlset-hostnameWEB1Web2:hostnamectlset-hostnameWEB2Test:hostnamectlset-hostnametest1,安装haproxy并截图过程yumlist|grephaproxy:查看haproxyl列表,查询可能需要很长时间!yum-yinstallhaproxy:安装:【点击拖动移动】2.填写IP分配表:服务器角色IP地址答:解释一下haproxy配置文件中的global、defaults、frontend、backend参数的作用?global:用于设置全局配置参数,属于进程级配置,通常使用操作系统配置相关defaults:默认参数的配置部分。这些部分设置的参数默认会自动引用下面的frontend、backend和listen部分。frontend:用于设置接收用户请求的前端虚拟节点。frontend可以直接根据ACL规则指定要使用的backendbackendbackend:用于设置集群后端服务集群的配置,即增加一组真实服务器来处理前端用户的请求4.Haproxy配置及截图编辑/etc/haproxy/haproxy.cfg配置文件,配置内容如下:Location:/etc/haproxy/haproxy.cfgvim/etc/haproxy/haproxy.cfggloballog127.0.0.1local2chroot/var/lib/haproxypidfile/var/run/haproxy.pidmaxconn4000userhaproxygrouphaproxydaemonstatssocket/var/lib/haproxy/statsdefaultsmodehttplogglobaloptionhttplogooptiondontlognulloptionhttp-server-closeoptionforwardforexcept127.0.0.0/8optionredispatchretries3timeouthttp-request10stimeoutqueue1mtimeoutconnect10stimeoutserver1timeouttimeouthttp-keep-alive10stimeout检查10smaxconn3000frontendmain*:80aclurl_staticpath_beg-i/static/images/javascript/stylesheetsaclurl_staticpath_end-i.jpg.gif.png.css.jsuse_backendstaticifurl_staticdefault_backendwebbackendstaticbalanceroundrobinserverstatic127.0.0.1:4331checkbackendwebbalanceroundrobinserverweb1192.168.158.137:80checkserverweb2192.168.158.138:80check保存退出3.启动haproxy前检查是否有语法问题。命令如下haproxy-f/etc/haproxy/haproxy.cfg-c-ffilename如果filename是普通文件,在linux命令中为true-c一般表示:执行可执行文件时,加上-c,然后添加配置(或参数)文件,达到指定某个配置参数启动脚本的目的。例如:nginx启动命令:/usr/local/nginx/sbin/nginx-c/usr/local/nginx/conf/nginx.conf配置文件有效!没关系!启动haproxy:关闭防火墙:systemctlstarthaproxy(servicehaproxystart命令不起作用!)第一次:第二次:觉得不放心可以换个虚拟机试试!代码:foriin{1..40};docurl192.168.158.128;done以这种方式安装所有文件路径:易于查找和查看。给出路径!HAProxy配置文件详解根据不同的功能和用途,其配置文件主要由5部分组成,分别是global部分、defautls部分、frontend部分、backend部分、listen部分1)global部分:用于设置全局配置参数,属于进程级别的配置,通常与操作系统配置有关2)defaults部分:默认参数的配置部分。这些部分设置的参数默认会自动引用下面的frontend、backend和listen部分。3)前端部分:用于设置接收用户请求的前端虚拟节点。frontend可以直接根据ACL规则指定要使用的backend。4)backend部分:用于设置cluster后端服务集群的配置,即增加一组realserver来处理前端用户的请求5)listen部分:这部分是前后端的结合。配置项说明:1)globalpartgloballog127.0.0.1local1info#全局日志配置,local0为日志设备,info表示日志级别。其中,日志级别有四种:err、warning、info、debug。这个配置表示使用127.0.0.1上的rsyslog服务中的local0日志设备,日志级别为infomaxconn4096#设置每个HAProxy进程可接受的最大并发连接数usernobody#设置启动该进程的用户和组HAProxyprocessgroupnobodydaemon#设置HAProxy进程在后台运行,这是推荐的运行方式nbproc1#设置HAProxy启动时可以创建的进程数。该参数要求HAProxy运行模式设置为daemon,默认只启动一个进程;建议这个值设置的比CPUKernel号小pidfile/usr/local/haproxy/logs/haproxy.pid#指定HAProxy进程ID的存放位置2)defaultspartdefaultsmodehttp#设置默认的运行模式HAProxy实例,有tcp、http、health三个可选值。tcp模式:在该模式下,客户端和服务端之间会建立全双工连接,对七层报文不做任何检查,为默认模式;常用于SSL、SSH、SMTP等应用;http模式:该模式下,客户端请求在转发给后端服务器之前会进行深度解析,拒绝所有不兼容RFC格式的请求;retires3#设置重试连接后端服务器失败的次数,如果连接失败次数超过这个值,HAProxy会将对应的后端服务器标记为不可用timeoutconnect10s#设置连接成功的最长等待时间server,默认单位是毫秒,但也可以使用其他时间单位作为后缀timeoutclient20s#设置连接客户端发送数据时的最大等待时间,默认单位是毫秒,但也可以使用其他时间unitsasthesuffixtimeoutserver30s#设置服务器响应客户端数据传输的最长等待时间,默认单位为毫秒,但也可以使用其他时间单位作为后缀timeoutcheck5s#设置超时时间为后端服务器检测,默认单位为毫秒,但也可以使用其他时间单位作为后缀3)前端部分frontendwww#通过frontend关键字定义一个名为“www”的前端虚拟节点bind*:80#此选项用于定义一个或多个监听socket,只能在frontend和listen中定义,格式如下:bind[

:[port_range]][interface]modehttpoptionhttplog#默认情况下HAProxy日志不输出记录HTTP请求。此选项的功能是启用HTTP请求的日志记录。optionforwardfor#这个选项的作用是保证后端服务器能够记录客户端的真实IPoptionhttpclose#这个选项的意思是客户端和服务器完成一次连接请求后,HAProxy会主动关闭TCP连接。这是一个对性能日志很有帮助的参数global#表示使用global部分定义的日志格式default_backendhtmpool#这个选项用来指定后端的默认服务器池4)backendpartbackendhtmpoolmodehttpoptionredispatch#这个参数用于cookies维护环境。默认情况下,HAProxy会将请求的后端服务器的serverID插入到cookie中,以确保会话持久化。而且如果后端服务器出现故障,客户端的cookie不会被刷新,会造成无法访问。这时候如果设置了这个参数,那么客户的请求会被强行定向到另一台健康的后端服务器上,保证服务正常optionabortonclose#这个参数可以在服务器负载高的时候自动结束当前服务器中处理时间比较长的连接queuebalanceroundrobin#负载均衡算法cookieSERVERID#表示允许SERVERID插入cookie中,可以使用option下面server关键字中的cookie关键字来定义每个server的SERVERIDhttpchkGET/index.php#这个option表示开启HTTP服务状态检测serverweb110.1.1.1:80cookieserver1weight6checkinter2000rise2fall3serverweb210.1.1.2:80cookieserver2weight6checkinter2000rise2fall3#server用来定义Multiplefrontend和listen部分不能使用backendrealservers5)listenpartlistenadmin_status#listen部分用于配置HAProxy监控页面相关参数bind0.0.0.0:9188modehttplog127.0.0.1local0errstatsrefresh30s#设置HAProxy监控统计页面自动refreshtimestatsuri/haproxy-status#设置HAProxy监控页面的URI路径accessstatsrealmWelcomelogin#设置登录监控页面时密码框的提示信息statsauthadmin:admin#设置登录的用户给监控页面的名称、密码。用户密码用冒号隔开,可设置多个,每行一个page,1.4.9版本后有效6.HAProxy支持的负载均衡算法:roundrobin:基于权重的round-robin调度算法static-rr:基于权重的round-robin调度算法,但是这个算法是一个静态算法,正在运行调整其服务器权重,此时不会生效。source:基于请求源IP的算法。该算法首先对请求的源IP进行HASH运算,然后将结果除以后端服务器的总权重,转发给匹配的后端服务器。这样同一客户端IP的请求总能转发到特定的后端服务器leastconn:该算法会将新的连接请求转发到连接数最少的后端服务器。建议在session时间较长的场景下使用该算法,比如数据库负载均衡uri:该算法会对部分或整个URI进行HASH运算,除以服务器总权重,最后转发给一个matchingbackenduri_paramontheserver:该算法会根据url路径中的参数进行转发,这样在后端真实服务器数据不变的情况下,同一用户的请求总是分发到同一台机器上hdr:该算法根据HTTPheader转发,如果指定的HTTPheader名称不存在,则使用roundrobin算法进行策略转发