haproxy配置文件模板以及详解

haproxy配置⽂件模板以及详解haproxy配置⽂件详解
“defaults” 区域定义了frontend,backend,listen 的默认参数
“frontend“ 区域描述了接收客户端请求的监听配置
”backend“ 区域描述接受请求处理的后端服务器配置
”listen“ 区域描述⼀组前端和后端直接⼀对⼀绑定的组配置
香农熵
global # 全局参数的设置
log 127.0.0.1 local2 # log语法:log <address_1>[max_level_1] # 全局的⽇志配置,使⽤log关键字,指定使⽤127.0.0.1
上的syslog服务中的local0⽇志设备,记录⽇志等级为info的⽇志
一江春水向东流任正非chroot /var/lib/haproxy #改变当前⼯作⽬录
pidfile /var/run/haproxy.pid #当前进程id⽂件
maxconn 4000 #最⼤连接数
user haproxy #所属⽤户
group haproxy #所属组
daemon #以守护进程⽅式运⾏haproxy
stats socket /var/lib/haproxy/stats
defaults
mode http #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
log global #应⽤全局的⽇志配置
option httplog # 启⽤⽇志记录HTTP请求,默认haproxy⽇志记录是不记录HTTP请求⽇志
option dontlognull # 启⽤该项,⽇志中将不会记录空连接。所谓空连接就是在上游的负载均衡器
或者监控系统为了探测该 服务是否存活可⽤时,需要定期的连接或者获取某
⼀固定的组件或页⾯,或者探测扫描端⼝是否在监听或开放等动作被称为空连接;
吉祥满族
官⽅⽂档中标注,如果该服务上游没有其他的负载均衡器的话,建议不要使⽤
该参数,因为互联⽹上的恶意扫描或其他动作就不会被记录下来
option http-server-close #每次请求完毕后主动关闭http通道
option forwardfor except 127.0.0.0/8 #如果服务器上的应⽤程序想记录发起请求的客户端的IP地址,需要在HAProxy
上 配置此选项, 这样 HAProxy会把客户端的IP信息发送给服务器,在HTTP
请求中添加"X-Forwarded-For"字段。 启⽤ X-Forwarded-For,在requests
头部插⼊客户端IP发送给后端的server,使后端server获取到客户端的真实IP。
option redispatch # 当使⽤了cookie时,haproxy将会将其请求的后端服务器的serverID插⼊到
cookie中,以保证会话的SESSION持久性;⽽此时,如果后端的服务器宕掉
了, 但是客户端的cookie是不会刷新的,如果设置此参数,将会将客户的请
求强制定向到另外⼀个后端server上,以保证服务的正常。
retries 3 # 定义连接后端服务器的失败重连次数,连接失败次数超过此值后将会将对应后端服务器标记为不可⽤
timeout http-request 10s #http请求超时时间
timeout queue 1m #⼀个请求在队列⾥的超时时间
timeout connect 10s #连接超时
timeout client 1m #客户端超时
timeout server 1m #服务器端超时
timeout http-keep-alive 10s #设置http-keep-alive的超时时间
timeout check 10s #检测超时
maxconn 3000 #每个进程可⽤的最⼤连接数
frontend main *:80 #这⾥建议使⽤bind *:80的⽅式,要不然做集⾼可⽤的时候有问题,vip切换到其他机器就不能访问了监听地址为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 my_webserver #定义⼀个名为my_app前端部分。此处将对于的请求转发给后端
backend static #使⽤了静态动态分离(如果url_path匹配 .jpg .gif .png .css .js静态⽂件则访问此后端)
balance roundrobin #负载均衡算法(#banlance roundrobin 轮询,balance source 保存session值,⽀持static-
rr,leastconn,first,uri等参数)
server static 127.0.0.1:80 check #静态⽂件部署在本机(也可以部署在其他机器或者squid缓存服务器)
backend my_webserver #定义⼀个名为my_webserver后端部分。PS:此处my_webserver只是⼀⾃定义名字⽽已,但是需要与frontend⾥⾯配置项default_backend 值相⼀致
balance roundrobin #负载均衡算法,⽀持static-rr,leastconn,first,uri等参数
server web01 172.31.2.33:80 check inter 2000 rise 2 fall 3 weight 30 #check inter 检测⼼跳频率
server web02 172.31.2.34:80 check inter 2000 rise 2 fall 3 weight 30 #rise 表⽰2次正确认为服务器可⽤
server web03 172.31.2.35:80 check inter 2000 rise 2 fall 3 weight 30 #fall 3次失败认为服务器不可⽤
errorfile 400 /etc/haproxy/errorpages/400badreq.http #代表如果是错误的话返回本地的⼀个页⾯
errorfile 403 /etc/haproxy/errorpages/403forbid.http
errorfile 503 /etc/haproxy/errorpages/503sorry.http
errorfile
在⽤户请求不存在的页⾯时,返回⼀个页⾯⽂件给客户端⽽⾮由haproxy⽣成的错误代码;可⽤于所有段中。
code 指定对HTTP的哪些状态码返回指定的页⾯;这⾥可⽤的状态码有200、400、403、408、500、
502、503和504;
file :指定⽤于响应的页⾯⽂件;
ACL
(1).4层常⽤检查标准
src <ip_addr>
src_port
dst <ip_addr>
dst_port
其中src、src_port、dst和dst_port就是检查标准creiterion,其后的值就是value。
例如:
acl accept_clients src 192.168.100.0/24
acl reject_clients src 172.16.0.0/16
tcp-request content accept if accept_clients
tcp-request content reject if reject_clients
tcp-request content reject # 此项表明不匹配前两项的默认都拒绝
(2).7层常⽤检查标准
hdr(HEADER):检查⾸部字段的值是否为指定的值,如hdr(Connection) -i close表⽰⾸部字段Connection的值是否为不区分⼤⼩写的close。hdr(Host) -i ,即请求的主机是否是指定的值。
·hdr_reg(HEADER):检查⾸部字段是否匹配指定的模式。如hdr_reg(Host) -i .*.linuxidc。
·http_first_req:当正处理的请求是第⼀个请求时返回true。
·method:请求的⽅法为指定的⽅法时返回⽅法对应的数值,也就表⽰true。例如"method GET"。
◦acl valid_method method GET
◦http-request deny if ! valid_method
·path:匹配uri的path部分,⼀般⽤来匹配精确的⽂件资源。例如path -i /a.png。
·path_beg:匹配path的前缀部分。
·path_end:匹配path的后缀部分。
·path_reg:使⽤正则表达式来匹配path。
·url:对整个url进⾏匹配。
·url_beg:对url的前缀进⾏匹配。
acl url_static path_beg /static /images /img /css /viedo /download # 定义静态检查标准
acl url_static path_end .gif .png .jpg .css .js .bmp # 定义静态检查标准
acl host_www path /index.html # 为主页专门定制acl
acl url_dynamic path_end .php .php5 # 定义动态检查标准
acl host_www hdr_beg(Host) -i # 定位到主页
use_backend static if url_static #表⽰若满⾜url_static 则请求给static的所代表的后端服务器
use_backend dynamic if url_dynamic #同上
use_backend www if host_www #同上
listen admin
bind :9090
server web6c 192.168.137.111:9090 check
stats enable #开启监听
stats uri /status #设置监听的url
stats auth admin:123 #认证信息
stats auth qq:123
stats realm admin\ xxx #设置认证的默认提⽰
stats hide-version #隐藏版本
stats refresh 10s
stats admin if TRUE #TRUE这个关键字表⽰只有经过认证成功后才能被管理
haproxy配置⽂件模板
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
cos系统下载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            my_webserver
backend static
balance    roundrobin
server      static 127.0.0.1:80 check
backend my_webserver
balance    roundrobin
server  web01 172.31.2.33:80  check inter 2000  rise 2 fall 3 weight 30              server  web02 172.31.2.34:80  check inter 2000  rise 2 fall 3 weight 30              server  web03 172.31.2.35:80  check inter 2000  rise 2 fall 3 weight 30                errorfile 400 /etc/haproxy/errorpages/400badreq.http
errorfile 403 /etc/haproxy/errorpages/403forbid.http
errorfile 503 /etc/haproxy/errorpages/503sorry.http
listen  admin
bind :9090
server web6c 192.168.137.111:9090 check
stats enable
stats uri /status
stats auth admin:123
stats auth qq:123
stats realm admin\ xxx
stats hide-version
stats refresh 10s
stats admin if TRUE

本文发布于:2024-09-25 08:28:14,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/181797.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:请求   服务器   是否   客户端   配置
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议