[:port][param*] 在后端声明一个server,因此,不能用于defaults和frontend区段。 <:port>:指定将连接请求所发往此服务器时的目标端口,其为可选项,为设定是,将使用客户端请求时的同一相同端口 [param*]:为此服务器设定的一系列参数:其可以得参数非常多,具体请参考官方文档(http://cbonte./haproxy-dconv/configuration-1.4.html#5)中的说明,下面仅说明几个常用的参数 服务器或默认服务器参数: backup:设定为备用服务器,仅在负载均衡场景中的其他server均不可以启用此server check:启动对此server执行监控状态检查,其可以借助于额外的其他参数完成更精细的设定,如: inter rise fall cookie maxconn maxqueue redir server srv1 192..168.1.202:80 redir http://imageserver. check weight 检查方法: option httpchk option httpchk option httpchk option httpchk backend https_relay mode tcp option httpchk OPTIONS * HTTP/1.1rnHost: www server apache1 192.168.1.1:443 check port 80 capture request header capture request header 捕获并记录指定的请求首部最近一次出现时的第一个值,仅能用于“frontend”和“listen”区段,捕获的首部值使用花括号{}括起来后添加进日志中,如果需要捕获多个首部值,他们将以指定的次序出现在日志文件中,并以竖线“|”作为分隔符,不存在的首部记录为空字符串,最长需要捕获的首部包括在虚拟主机环境中使用的“host”、上传请求首部中的“Content-length”、快速区别现实用户和网络机器人“User-agent”,已经代理环境中距离请求来源的“X-Forword-For” 可以捕获的请求首部的个数没有限制,但每个捕获最多能记录64个字符,为了保证同一个frontend中日志格式的统一性,首部捕获仅能在frontend中定义 capture response header capture response header 捕获并记录响应首部。其格式和要点同捕获的请求首部响应 stats enable 启用基于程序编译时默认设置的统计报告,不能用于“frontend”区段,只要没有额外的其他设定,他们就会使用如下的配置 - stats uri : /haproxy?stats - stats realm : 'HAProxy Statistics' - stats auth : no authentication - stats scope : no restriction 尽管“stats enable”一条就能够启用统计报告,但还是建议设定其他所有的参数,以避免其依赖默认设定而带来非预期后果,下面是一个配置案例实例 backend public_www server srv1 192.168.1.201:80 stats enable stats hide-version stats scope . stats uri /admin?stats stats realm Haproxy Statistics stats auth admin1:AdMiN123 stats auth admin2:AdMiN321 stats hide-version 启用统计报告并隐藏HAProxy版本报告,不能用于“frontend”区域,默认情况下,统计页面会显示一些有用信息,包括HAProxy的版本号,然后,向所有人公开HAproxy的准确版本号是非常有危险的,因为他能够版主恶意用户快速定位版本的缺陷和漏洞,尽管“stats hide-version”一条就能够启用统计报告,但还是建议设定其他所有的参数,以避免其依赖默认设定而带来非预期后果请参照“stats enable”一节的说明 stats realm stats realm 启用统计报告并高精认证领域,不能用于“frontend”区域,haproxy在读取realm是会讲是做一个单词,因此,中间的空白字符都必须使用反斜线进行转移。此参数仅在与“stats auth”配置使用时有意义 尽管“stats realm”一条就能够启用统计报告,但还是建议设定其他所有的参数,以避免其依赖默认设定而带来非预期,后果请参照“stats enable”一节的说明 stats scope stats scope { 启用统计报告并限定报告的区段,不能用于“frontend”区域,当指定此语句时,统计报告将仅显示其列举出区段的报告信息,所有其他区段的信息将被隐藏,如果需要显示多个区段的统计报告,此语句可以定义多次,需要注意的是,区段名称进程仅仅是以字符串比较的方式进行,他不会真检查指定的区段是否真正存在 尽管“stats scope”一条就能够启用统计报告,但还是建议设定其他所有的参数,以避免其依赖默认设定而带来非预期后果,请参照“stats enable”一节的说明 stats auth stats auth 启用带认证的统计报告功能并授权一个用户账号,不能用于“frontend”区域 此语句将给予默认设定启用统计功能报告,并仅允许其定义的用户访问,其也可以定义多次以手段多个用户账号,可以结合“stats realm”参数在提示用户认证是给出一个领域说明信息,在使用非法用户访问统计功能时,其将会响应一个“401 Forbidden”页面,其认证方式为HTTP Basic认证,密码传输会以明文方式进行,因此,配置文件中也使用存储明文方式存储以说明其非保密信息故此不能想用与其他关键性账号的密码。 尽管“stats auth”一条就能够启用统计报告,但还是建议设定其他所有的参数,以避免其依赖默认设定而带来非预期后果,请参照“stats enable”一节的说明 stats admin atsts admin {if|unless} 在指定的条件满足时启用统计报告页面的管理级别功能,他允许通过web接口启用或禁用服务器,不过,基于安全的角度考虑,统计报告页面应该尽可能为只读的,此外,如果启用了HAproxy的多进程模式,启用此管理级别将会可能导致异常行为 目前来说,POST请求方法被限制于仅能使用缓冲区减去保留之外的空间,因此,服务器列表不能过长,否则,此请求将无法正常工作,因此,建议一次仅调整少数几个服务器, option httplog option httplog [clf] 启用记录HTTP请求、会话状态和计时器的功能 clf:使用CLF格式来代替HAproxy默认的HTTP格式,通常在使用仅支持CLF格式的特定日志分析器时才需要使用此格式 默认情况下,日志输入格式非常简陋。因为其仅包括源地址、目标地址和实例名称、而“option httplog”参数将会使得日志变得丰富许多,其通常包括但不局限于HTTP请求、连接计时器、会话状态、连接数、捕获的首部及cookie、“frontend”、“backend”及服务器名称。当然也包括源地址和端口号等。 option logasap no option logasap 启用或禁用提前将HTTP请求记入日志,不能用于“frontend”区段。 默认情况下,HTTP请求是在请求结束时进行记录以便能够将其整体输入时长和字节数记入日志,由此,传较大的对象时,其记入日志的市场可能会略有延迟,“option logasap”参数能够在服务器发送complete首部时及时记录日志,只不过,此时将不记录整体传输时长和字节数。此情形下,捕获“Content-Length”响应报文来记录的字节数是以一个较好的选择 option forwardfor option forwardfor[ except 允许在发往服务器的请求首部中插入“X-Forwarded-For”首部 if-none: 仅在此首部不存在时才会将其添加至请求报文中 HAproxy工作与反向代理模式,其发往服务器的请求中的客户端IP均为HAproxy主机的地址而非真正的客户端地址,这会使得服务器的日志记录不了真正的请求来源,“X-Forwarded-For”首部则可用于解决此问题,HAproxy可以向每个房网服务器的请求上添加此首部,并以客户端IP为其value 需要注意的是,HAproxy工作与隧道模式,其仅检查每一个连接的第一个请求,一次,仅第一个请求报文中被附加此首部,请确保同时使用“option httpclose”、“option forceclose”和“option http-server-close”几个option,例如 errorfile errorfile
|
|
来自: waitingnothing > 《Haproxy》