资讯专栏INFORMATION COLUMN

CENTOS7 高性能Linux集群 通过yum进行 haproxy配置 !安装 !使用!HAPro

sshe / 1390人阅读

摘要:在默认情况下,会将其请求的后端服务器的插入中,以保证会话的持久性。

照片参考:https://blog.csdn.net/weixin_...

Haproxy配置

永久修改名字:便于区分虚拟机!
Haproxy:hostnamectl set-hostname haproxy
Web1: hostnamectl set-hostname WEB1
Web2:hostnamectl set-hostname WEB2
Test:hostnamectl set-hostname test

1、haproxy安装并将过程截图
yum list |grep haproxy:查看haproxyl列表,查询可能会花费较长时间!

yum -y install haproxy:安装:

[点击并拖拽以移动]

2、填写IP分配表:
服务器角色 IP地址

Haproxy

192.168.1*8.128

Web1

192.168.1*8.137

Web2

192.168.1*8.138
test 192.168.1*8.135

3、简答:说明haproxy配置文件中global、defaults、frontend、backend参数的作用?
Global:

用于设置全局配置参数,属于进程级的配置,通常用操作系统配置相关

defaults:

默认参数的配置部分。在些部分设置的参数,默认会自动引用到下面的frontend, backend和listen部分

frontend:

用于设置接收用户请求的前端虚拟节点。frontend可以根据ACL规则直接指定要使用的后端backend

backend:

用于设置集群后端服务集群的配置,也就是用来添加一组真实服务器,以处理前端用户的请求
4、Haproxy配置并截图
编辑/etc/haproxy/haproxy.cfg配置文件,配置内容如下:
位置:/etc/haproxy/haproxy.cfg
vim /etc/haproxy/haproxy.cfg

global

log 127.0.0.1 local2

chroot /var/lib/haproxy

pidfile /var/run/haproxy.pid

maxconn 4000

user haproxy

group haproxy

daemon

stats socket /var/lib/haproxy/stats

defaults

mode http

log global

option httplog

option dontlognull

option http-server-close

option forwardfor except 127.0.0.0/8

option redispatch

retries 3

timeout http-request 10s

timeout queue 1m

timeout connect 10s

timeout client 1m

timeout server 1m

timeout http-keep-alive 10s

timeout check 10s

maxconn 3000

frontend main *:80

acl url_static path_beg -i /static /images /javascript /stylesheets

acl url_static path_end -i .jpg .gif .png .css .js

use_backend static if url_static

default_backend web

backend static

balance roundrobin

server static 127.0.0.1:4331 check

backend web

balance roundrobin

server web1 192.168.158.137:80 check

server web2 192.168.158.138:80 check

保存退出

3、启动haproxy

启动之前检查语法是否有问题,命令如下
haproxy -f /etc/haproxy/haproxy.cfg -c

-f filename 如果 filename为常规文件,则为真

linux命令中的-c一般是指:当执行某个可执行文件时,后面加 -c 然后再加配置(或参数)文件,

来达到指定以某种配置参数来启动脚本的目的。

例如:nginx的启动命令:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

Configuration file is valid!就OK啦!

启动haproxy:
关闭防火墙:systemctl start haproxy (service haproxy start 命令不行!)

第一次:

第二次:

感觉不放心还可以用另外一台虚拟机来试一下!
代码:for i in {1..40};do curl 192.168.158.128;done

通过这种方式的安装所有文件路径:

便于查找,查看。给出路径!

HAProxy配置文件详解

根据功能、用途不同,其配置文件主要由5部分组成,分别为global部分,defautls部分,frontend部分、backend部分、listen部分

1)global部分:用于设置全局配置参数,属于进程级的配置,通常用操作系统配置相关

2) defaults部分:默认参数的配置部分。在些部分设置的参数,默认会自动引用到下面的frontend, backend和listen部分

3) frontend部分:用于设置接收用户请求的前端虚拟节点。frontend可以根据ACL规则直接指定要使用的后端backend

4) backend部分:用于设置集群后端服务集群的配置,也就是用来添加一组真实服务器,以处理前端用户的请求

5) listen部分:此部分是frontend和backend部分的结合体

配置项说明:

1) global部分

global

log 127.0.0.1 local1 info #全局的日志配置,local0是日志设备,info表示日志级别。其中日志级别有err, warning, info, debug 4种。这个配置表示使用127.0.0.1上的rsyslog服务中的local0日志设备,记录日志等级为info

maxconn 4096 #设置每个HAProxy进程可接受的最大并发连接数

user nobody #设置启动HAProxy进程的用户和组

group nobody

daemon #设置HAProxy进程进入后台运行,这是推荐的运行模式

nbproc 1 #设置HAProxy启动时可创建的进程数,此参数要求将HAProxy运行模式设置为daemon,默认只启动一个进程;建议该值设置时小于CPU核数

pidfile /usr/local/haproxy/logs/haproxy.pid #指定HAProxy进程ID的存放位置

2) defaults部分

defaults

mode http #设置HAProxy实例默认的运行模式,有tcp, http, health三个可选值。tcp模式:在此模式下,客户端和服务器端间将建立一个全双工的连接,不会对七层报文做任何检查,为默认的模式;经常用于SSL, SSH, SMTP等应用;http模式:在此模式下,客户端请求在转发至后端服务器前将会被深度分析,所有不与RFC格式兼容的请求都会被拒绝;

retires 3 #设置连接后端服务器的失败重试次数,如果连接失败的次数超过该数值,HAProxy会将对应的后端服务器标记为不可用

timeout connect 10s #设置成功连接到一台服务器的最长等待时间,默认单位是毫秒,但也可以使用其他时间单位作后缀

timeout client 20s #设置连接客户端发送数据时最长等待时间,默认单位是毫秒,但也可以使用其他时间单位作后缀

timeout server 30s #设置服务器端回应客户端数据发送的最长等待时间,默认单位是毫秒,但也可以使用其他时间单位作后缀

timeout check 5s #设置对后端服务器的检测超时时间,默认单位是毫秒,但也可以使用其他时间单位作后缀

3) frontend部分

frontend www #通过frontend关键字定义了一个名为"www"的前端虚拟节点

bind *:80 #此选项用于定义一个或者几个监听的套接字,只能在frontend和listen中定义,格式如下:bind [

:[port_range]] [interface]

mode http

option httplog #默认情况下,HAProxy日志是不记录HTTP请求的,此选项的作用是启用日志记录HTTP请求

option forwardfor #此选项的作用是保证后端服务器可记录客户端真实的IP

option httpclose #此选项表示客户端和服务端完成一次连接请求后,HAProxy将主动关闭此TCP连接。这是对性能非常有帮助的一个参数

log global #表示使用global段中定义的日志格式

default_backend htmpool #此选项用于指定后端默认的服务器池

4) backend部分

backend htmpool

mode http

option redispatch #此参数用于cookie保持的环境中。在默认情况下,HAProxy会将其请求的后端服务器的serverID插入cookie中,以保证会话的session持久性。而如果后端服务器出现故障,客户端的cookie是不会刷新的,这就会造成无法访问。此时,如果设置了此参数,就会将客户的请求强制定向到另外一台健康的后端服务器上,以保证服务正常

option abortonclose #此参数可以在服务器负载很高的情况下,自动结束当前队列中处理时间比较长的连接

balance roundrobin #负载均衡算法

cookie SERVERID #表示允许向cookie插入SERVERID,每台服务器的SERVERID可在下面的server关键字中使用cookie关键字定义

option httpchk GET /index.php #此选项表示启用HTTP的服务状态检测功能

server web1 10.1.1.1:80 cookie server1 weight 6 check inter 2000 rise 2 fall 3

server web2 10.1.1.2:80 cookie server2 weight 6 check inter 2000 rise 2 fall 3#server用于定义多台后端真实服务器,不能用于frontend和listen段

5) listen部分

listen admin_status #listen部分用于配置HAProxy监控页面相关的参数

bind 0.0.0.0:9188

mode http

log 127.0.0.1 local0 err

stats refresh 30s #设置HAProxy监控统计页面自动刷新的时间

stats uri /haproxy-status #设置HAProxy监控页面访问的URI路径

stats realm Welcome login #设置登录监控页面时,密码框上的提示信息

stats auth admin:admin #设置登录监控页面的用户名,密码。用户密码用冒号隔开,可以设置多个,每行一个

stats hide-version #设置在监控页面上隐藏HAProxy的版本号

stats admin if TRUE #设置此选项,可在监控页面上启用、禁用后端服务器,仅在1.4.9版本以后生效

6、HAProxy支持的负载均衡算法:

roundrobin:基于权重进行轮叫调度的算法

static-rr:基于权重进行轮叫调度的算法,不过此算法为静态算法,在运行时调整其服务器权重不会生效

source:基于请求源IP的算法。此算法先对请求的源IP进行HASH运算,然后将结果与后端服务器的权重总数相除后转发至某台匹配的后端服务器。这种方式可以使同一个客户端IP的请求始终转发到某特定的后端服务器

leastconn:此算法会将新的连接请求转发到具有最少连接数目的后端服务器。在会话时间较长的场景中推荐使用此算法 ,例如数据库负载均衡

uri:此算法会对部分或整个URI进行HASH运算,再经过与服务器的总权重相除,最后转发到某台匹配的后端服务器上

uri_param:此算法会根据URL路径中的参数进行转发,这样可保证在后端真实服务器数据不变时,同一个用户的请求始终分发到同一台机器上

hdr:此算法根据HTTP头进行转发,如果指定的HTTP头名称不存在,则使用roundrobin算法 进行策略转发

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/34952.html

相关文章

  • CENTOS7 性能Linux集群 通过yum进行 haproxy配置安装使用HAPro

    摘要:在默认情况下,会将其请求的后端服务器的插入中,以保证会话的持久性。 照片参考:https://blog.csdn.net/weixin_... Haproxy配置 永久修改名字:便于区分虚拟机!Haproxy:hostnamectl set-hostname haproxyWeb1: hostnamectl set-hostname WEB1Web2:hostnamectl set-h...

    fish 评论0 收藏0
  • CENTOS7 性能Linux集群 通过yum进行 haproxy配置安装使用HAPro

    摘要:在默认情况下,会将其请求的后端服务器的插入中,以保证会话的持久性。照片参考:https://blog.csdn.net/weixin_... Haproxy配置 永久修改名字:便于区分虚拟机!Haproxy:hostnamectl set-hostname haproxyWeb1: hostnamectl set-hostname WEB1Web2:hostnamectl set-hostn...

    zhisheng 评论0 收藏0
  • Centos7搭建haproxy+nginx+nfs

    摘要:负载均衡负载均衡也是的一个高频使用场景,对于下游存在的多个相同服务,可以将请求采用某种策略随机轮询权重发到相应的服务处理。 HAProxy简介 HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。 HAProxy实现了一...

    golden_hamster 评论0 收藏0
  • centos7中搭建haproxy-confd-etcd-tomcat

    摘要:打开配置文件将设为关闭防火墙。通过查询,结合配置模板引擎,保持本地配置最新,同时具备定期探测机制,配置变更自动。打开文件在末尾添加一行其中为存储机,为监听的端口。二在存储机中安装安装设置开机启动。 第一部分 测试环境一、 简要信息操作系统: 版本 CentOS 7.2.1511 内核 3.10.0-327.36.2.el7.x86_64角色 IP ...

    BigTomato 评论0 收藏0
  • rancher1.6高可用集群搭建

    摘要:停掉一台,查看负载均衡健康检查是否正常搭建集群创建需使用的数据库启动访问增加访问控制。给配置负载均衡,增加配置重启访问添加主机,添加容器,测试是否正常,恶意掉容器或者关闭机器,查看整个集群是否正常。 rancher高可用集群搭建 一、搭建环境 1.安装系统 下载centos最新版, http://mirrors.sohu.com/centos/7/isos/x86_64/CentOS...

    gghyoo 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<