Haproxy配置文件(2)
#/usr/local/sbin/haproxy -f /etc/haproxy/haproxy.cfg -st `cat /var/run/haproxy.pid`
####################全局配置信息########################
#######参数是进程级的,通常和操作系统(OS)相关#########
global maxconn #默认最大连接数 log 127.0.0.1 local3 #[err warning info debug] chroot /var/haproxy #chroot运行的路径 uid #所属运行的用户uid gid #所属运行的用户组 daemon #以后台形式运行haproxy nbproc #进程数量(可以设置多个进程提高性能) pidfile /var/run/haproxy.pid #haproxy的pid存放路径,启动进程的用户必须有权限访问此文件 ulimit-n #ulimit的数量限制
#####################默认的全局设置######################
##这些参数可以被利用配置到frontend,backend,listen组件##
defaults log global mode http #所处理的类别 (#7层 http;4层tcp ) maxconn #最大连接数 option httplog #日志类别http日志格式
option httpclose #每次请求完毕后主动关闭http通道 option dontlognull #不记录健康检查的日志信息 option forwardfor #如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip option redispatch #serverId对应的服务器挂掉后,强制定向到其他健康的服务器 option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的连接 stats refresh #统计页面刷新间隔 retries #3次连接失败就认为服务不可用,也可以通过后面设置 balance roundrobin #默认的负载均衡的方式,轮询方式 #balance source #默认的负载均衡的方式,类似nginx的ip_hash #balance leastconn #默认的负载均衡的方式,最小连接 contimeout #连接超时 clitimeout #客户端超时 srvtimeout #服务器超时 timeout check #心跳检测超时
####################监控页面的设置#######################
listen admin_status #Frontend和Backend的组合体,监控组的名称,按需自定义名称 bind 0.0.0.0: #监听端口 mode http #http的7层模式 log 127.0.0.1 local3 err #错误日志记录 stats refresh 5s #每隔5秒自动刷新监控页面 stats uri /admin?stats #监控页面的url stats realm xuequn\ xuequn #监控页面的提示信息 stats auth admin:admin #监控页面的用户和密码admin,可以设置多个用户名 stats auth admin1:admin1 #监控页面的用户和密码admin1 stats hide-version #隐藏统计页面上的HAproxy版本信息 stats admin if TRUE #手工启用/禁用,后端服务器(haproxy-1.4.9以后版本) errorfile /etc/haproxy/errorfiles/.http errorfile /etc/haproxy/errorfiles/.http errorfile /etc/haproxy/errorfiles/.http errorfile /etc/haproxy/errorfiles/.http errorfile /etc/haproxy/errorfiles/.http
#################HAProxy的日志记录内容设置###################
capture request header Host len capture request header Content-Length len capture request header Referer len capture response header Server len capture response header Content-Length len capture response header Cache-Control len
#######################网站监测listen配置#####################
###########此用法主要是监控haproxy后端服务器的监控状态############
listen site_status bind 0.0.0.0: #监听端口 mode http #http的7层模式 log 127.0.0.1 local3 err #[err warning info debug] monitor-uri /site_status #网站健康检测URL,用来检测HAProxy管理的网站是否可以用,正常返回200,不正常返回503 acl site_dead nbsrv(server_web) lt #定义网站down时的策略当挂在负载均衡上的指定backend的中有效机器数小于1台时返回true acl site_dead nbsrv(server_blog) lt acl site_dead nbsrv(server_bbs) lt monitor fail if site_dead #当满足策略的时候返回503,网上文档说的是500,实际测试为503 monitor-net 192.168.16.2/ #来自192.168.16.2的日志信息不会被记录和转发 monitor-net 192.168.16.3/
########frontend配置############
#####注意,frontend配置里面可以定义多个acl进行匹配操作########
frontend http_80_in bind 0.0.0.0: #监听端口,即haproxy提供web服务的端口,和lvs的vip端口类似 mode http #http的7层模式 log global #应用全局的日志配置 option httplog #启用http的log option httpclose #每次请求完毕后主动关闭http通道,HA-Proxy不支持keep-alive模式 option forwardfor #如果后端服务器需要获得客户端的真实IP需要配置次参数,将可以从Http Header中获得客户端IP
########acl策略配置#############
acl xuequn_web hdr_reg(host) -i ^(www.xuequn.cn|ww1.xuequn.cn)$ #如果请求的域名满足正则表达式中的2个域名返回true -i是忽略大小写 acl xuequn_blog hdr_dom(host) -i blog.xuequn.cn #如果请求的域名满足www.xuequn.cn返回true -i是忽略大小写 #acl xuequn hdr(host) -i xuequn.cn #如果请求的域名满足xuequn.cn返回true -i是忽略大小写 #acl file_req url_sub -i killall #在请求url中包含killall=,则此控制策略返回true,否则为false #acl dir_req url_dir -i allow #在请求url中存在allow作为部分地址路径,则此控制策略返回true,否则返回false #acl missing_cl hdr_cnt(Content-length) eq #当请求的header中Content-length等于0时返回true
########acl策略匹配相应#############
#block if missing_cl #当请求中header中Content-length等于0阻止请求返回403 #block if !file_req || dir_req #block表示阻止请求,返回403错误,当前表示如果不满足策略file_req,或者满足策略dir_req,则阻止请求 use_backend server_web if xuequn_web #当满足xuequn_web的策略时使用server_web的backend use_backend server_blog if xuequn_blog #当满足xuequn_blog的策略时使用server_blog的backend #redirect prefix http://192.168.16.3 code 301 if xuequn #当访问xuequn.cn的时候,用http的301挑转到http://192.168.16.3 default_backend server_bbs #以上都不满足的时候使用默认server_bbs的backend
##########backend的设置##############
#下面我将设置三组服务器 server_web,server_blog,server_bbs
###########################backend server_web#############################
backend server_web mode http #http的7层模式 balance roundrobin #负载均衡的方式,roundrobin平均方式 cookie SERVERID #允许插入serverid到cookie中,serverid后面可以定义 option httpchk GET /index.html #心跳检测的文件 server web1 192.168.16.2: cookie web1 check inter rise fall weight #服务器定义,cookie 1表示serverid为web1,check inter 1500是检测心跳频率rise 3是3次正确认为服务器可用, #fall 3是3次失败认为服务器不可用,weight代表权重 server web2 192.168.16.3: cookie web2 check inter rise fall weight #服务器定义,cookie 1表示serverid为web2,check inter 1500是检测心跳频率rise 3是3次正确认为服务器可用, #fall 3是3次失败认为服务器不可用,weight代表权重
###################################backend server_blog###############################################
backend server_blog mode http #http的7层模式 balance roundrobin #负载均衡的方式,roundrobin平均方式 cookie SERVERID #允许插入serverid到cookie中,serverid后面可以定义 option httpchk GET /index.html #心跳检测的文件 server blog1 192.168.16.2: cookie blog1 check inter rise fall weight #服务器定义,cookie 1表示serverid为web1,check inter 1500是检测心跳频率rise 3是3次正确认为服务器可用,fall 3是3次失败认为服务器不可用,weight代表权重 server blog2 192.168.16.3: cookie blog2 check inter rise fall weight #服务器定义,cookie 1表示serverid为web2,check inter 1500是检测心跳频率rise 3是3次正确认为服务器可用,fall 3是3次失败认为服务器不可用,weight代表权重
###################################backend server_bbs###############################################
backend server_bbs mode http #http的7层模式 balance roundrobin #负载均衡的方式,roundrobin平均方式 cookie SERVERID #允许插入serverid到cookie中,serverid后面可以定义 option httpchk GET /index.html #心跳检测的文件 server bbs1 192.168.16.2: cookie bbs1 check inter rise fall weight #服务器定义,cookie 1表示serverid为web1,check inter 1500是检测心跳频率rise 3是3次正确认为服务器可用,fall 3是3次失败认为服务器不可用,weight代表权重 server bbs2 192.168.16.3: cookie bbs2 check inter rise fall weight #服务器定义,cookie 1表示serverid为web2,check inter 1500是检测心跳频率rise 3是3次正确认为服务器可用,fall 3是3次失败认为服务器不可用,weight代表权重
以上为基本的配置文件,下面会对这个配置一一说明和应用
PS:本文纯属记录个人实践经历,如有问题,可随时联系我。QQ505711559
Haproxy配置文件(2)的更多相关文章
- Python3.5 day3作业二:修改haproxy配置文件。
需求: 1.使python具体增删查的功能. haproxy的配置文件. global log 127.0.0.1 local2 daemon maxconn 256 log 127.0.0.1 lo ...
- python之haproxy配置文件操作(第三天)
作业: 对haproxy配置文件进行操作 要求: 对haproxy配置文件中backend下的server实现增删改查的功能 一.这个程序有二个版本 1. python2.7版本见haproxy_py ...
- haproxy配置文件
haproxy配置文件 思路:读一行.写一行 global log 127.0.0.1 local2 daemon maxconn 256 log 127.0.0.1 local2 info de ...
- haproxy配置文件简单管理
版本:python3功能:对haproxy配置文件进行简单的查询.添加以及删除功能操作流程:1.根据提示选择相应的选项2.进入所选项后,根据提示写入相应的参数3.查询功能会返回查询结果,添加.删除以及 ...
- haproxy配置文件详解和ACL功能
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- 作业-haproxy配置文件的增删查(有一个bug不知道咋改)
# yangqiao #查询 ''' f=open("C:\\aaaaaaaaaaaaa\\haproxy.txt", "r", encoding=" ...
- s12-day03-work01 python修改haproxy配置文件(初级版本)
#!/usr/local/env python3 ''' Author:@南非波波 Blog:http://www.cnblogs.com/songqingbo/ E-mail:qingbo.song ...
- haproxy 配置文件详解 之 frontend
配置示例: frontend www bind *: mode http option httplog option forwardfor option httpclose log global #a ...
- haproxy 配置文件详解 之 综述
HAProxy 配置文件根据功能和用途,主要有5 个部分组成,但有些部分并不是必须的,可以根据需要选择相应的部分进行配置. 1.global 部分 用来设定全局配置参数,属于进程级的配置,通常和操作系 ...
- python基础-修改haproxy配置文件
需要掌握的知识: 1.函数 2.文件处理 3.tag的用法 4.程序的解耦 需求: 1:查询 2:添加 3:删除 4:修改 5:退出 haproxy.conf 配置文件内容: global log 1 ...
随机推荐
- Bootstrap学习笔记(一)
用Laravel编写了一段时间程序,选择了bootstrap作为前段框架,现在已经有一段时间了,抽空总结一下: bootstrap是一个前端框架,所谓框架就是为满足特定需要在特定环境下提供的一 ...
- 【java】实例化对象的3种方式:new、clone、反射
实例化对象的3种方式:new.clone.反射
- 4.前端基于react,后端基于.net core2.0的开发之路(4) 前端打包,编译,路由,模型,服务
1.简要的介绍 学习react,首先学习的就是javascript,然后ES6,接着是jsx,通常来说如果有javascript的基础,上手非常快,但是真正要搭建一个前端工程化项目,还是有很多坑的 搞 ...
- Python Xcode搭建Python环境以及使用PyCharm CE
pycharm CE下载 使用教程 1.基础学习网站 2.在Xcode7中搭建python开发环境,这个不行了就试试第二个,我是第二个可以正常输出了,第一个没有输出 3.Python学习-MAC下 ...
- alias 命令详解
alias 命令 作用: 设置命令别名,可以将较长的命令进行简化,使用alias 时,用户必须使用单引号将原来的命令引起来,防止特殊字符导致错误. 如要永久生效则将alias 命令存放到bash 的 ...
- 深入理解用户权限rwx
其实在UNIX的实现中,文件权限用12个二进制位表示,如果该位置上的值是1,表示有相应的权限,如果是0则没有相应权限第11位为SUID位,第10位为SGID位,第9位为sticky位,第8-0位对应于 ...
- 安装两个JDK后配置环境变量没用?
在实际开发中,由于项目的需要,可能JDK的版本是不同的.比如我们前一个项目所需JDK版本是1.6的,项目完成后,下一个项目JDK版本又是需要1.7的,为了防止由于切换项目我们需要频繁的安装卸载JDK, ...
- Linux命令每日一个
2014-3-31 1:39 (1)tree linux以树状的结构显示当前目录及其包含的子目录下的文件 #apt-get install tree #tree //在当前目录下直接使用该命令即可 ...
- JavaScript的DOM编程--02--获取元素节点
如何来获取元素节点: 1) .document.getElementById: 根据 id 属性获取对应的单个节点 2) .document.getElementsByTagName: 根据标签名获取 ...
- Android studio Error:org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection cannot be cast to
http://blog.csdn.net/FlyRabbit_1/article/details/74536317 Error:org.gradle.api.internal.tasks.Defaul ...