wurfl php,Haproxy中 global 部分的配置

Haproxy中的 global (全局) 配置部分的优先级是最低的。global 主要包括了三个方面的配置:

进程和安全管理

性能优化配置

debug.

Tips 1:本文不涉及到ca、ssl等相关的配置,和ssl相关的配置,可以参考:haproxy中与ssl相关的配置项

Tips 2:本文不涉及到stats的相关配置,可以参考:haproxy中与stats相关的配置项

一、进程和安全管理

chroot

修改haproxy的工作目录至指定的目录,并在放弃权限之前执行chroot()操作,可以提升haproxy的安全级别,不过需要注意的是确保指定的目录为空目录且任何用户均不能有写权限

chroot /data/jail/

# ll

总用量 8

d---------. 2 root   root      6 3月   4 08:30 jai

tips 1:这里需要注意下,如果开启外部脚本健康检查,外部检查的 external-check path ,以及脚本文件 都应该chroot的权限范围内。

nbproc

cpu-map …

这2个配置是密切相关的,nbproc是指启动多少个haproxy进程。

#nbproc设置为4,讲启动4个进程

haproxy  11472  0.0  0.0  56520  1228 ?        Ss   08:57   0:00 ./haproxy -f /usr/local/haproxy/conf/haproxy.cfg

haproxy  11473  0.0  0.0  56520  1228 ?        Ss   08:57   0:00 ./haproxy -f /usr/local/haproxy/conf/haproxy.cfg

haproxy  11474  0.0  0.0  56520  1228 ?        Ss   08:57   0:00 ./haproxy -f /usr/local/haproxy/conf/haproxy.cfg

haproxy  11475  0.0  0.0  56520  1228 ?        Ss   08:57   0:00 ./haproxy -f /usr/local/haproxy/conf/haproxy.cfg

#查看pid文件,也可以看到四个进程ID

# cat /run/haproxy.pid

11472

11473

11474

11475

cpu-map是将进程绑定到特定的CPU上,这个好处是防止多进程对CPU的抢占,可以提升少量性能。这个配置指令有2个参数,第一参数是进程序号,从1开始。第二个参数是CPU序号,从0开始。举例说明如果将进程绑定到指定的CPU上的。

#查看本机的CPU个数,同时也可以看到CPU的序号从0开始

# cat /proc/cpuinfo | grep processor

processor    : 0

processor    : 1

processor    : 2

processor    : 3

# 逐一指定

cpu-map 1 0

cpu-map 2 1

cpu-map 3 2

cpu-map 4 3

cpu-map 5 4 //该条超过nbproc的数量,将被忽略

#全部的进程由0号cpu处理。

cpu-map all 0

#奇数的进程有0号cpu处理,偶数的进程有1号cpu处理。

cpu-map odd 0

cpu-map even 1

daemon

后台模式,也可以使用“-D”启用,或者“-db”禁用

deviceatlas-json-file

deviceatlas-log-level

deviceatlas-separator

deviceatlas-properties-cookie

这四个和deviceatlas相关的设置,配置这四个设置需要在安装haproxy增加对应的模块

make TARGET= USE_PCRE=1 USE_DEVICEATLAS=1 \

DEVICEATLAS_SRC=

external-check

option external-check

external-check path

external-check command

external-check:在 global 中设置,启用外部脚本执行健康检查,出于安全考虑,默认情况下关闭的。

option external-check:在defaults、listen、backend均可以设置,采用外部脚本执行健康检查。这里和常用的 option httpchk GET /index.html的用法一个意思。

external-check path :运行外部检查时使用的PATH环境变量的值

external-check command :运行外部检查的执行脚本文件。在执行中脚本文件将会接受到4个参数,同时可以直接使用一些环境变量。详见如下:

参数:

变量:

HAPROXY_PROXY_ID

HAPROXY_PROXY_NAME

HAPROXY_PROXY_ADDR

HAPROXY_PROXY_PORT

HAPROXY_SERVER_ADDR

HAPROXY_SERVER_CURCONN //服务器connects数

HAPROXY_SERVER_ID

HAPROXY_SERVER_MAXCONN //haproxy的最大链接数

HAPROXY_SERVER_NAME

HAPROXY_SERVER_PORT

PATH //设置的external-check path

Tips 1:外部检查的脚本,必须已 0 状态退出,否则会认为检查失败。这个对于高级的haproxy应用特别有用。

Tips 2:如果开启chroot,需要注意下访问的权限,这里可以参考chroot的配置。

具体的用法如下:

global

external-check

backend servers

option external-check

external-check path "/usr/bin:/bin:/tmp"

external-check command /bin/true //执行的脚本

gid

group

uid

user

运行 haproxy 的用户 和 组,例如:

uid 1002

gid 1002

user haproxy

group haproxy

log

[len ] [format ] [max level [min level]]

log-send-hostname []

log-tag

lua-load

执行一个lua脚本 ,但在安装 haproxy 需要指定  USE_LUA,例如:

# make PREFIX=/usr/local/haproxy/ TARGET=linux2628 USE_PCRE=1

USE_OPENSSL=1 USE_ZLIB=1 USE_LUA=1

pidfile

将deamon的所有pids写入文件中,启动进程的用户必须有写入的权限。也可用“-p”代替

setenv

presetenv

resetenv [ …]

unsetenv [ …]

setenv :设置环境变量,如果存在会覆盖。

presetenv:设置环境变量,如果存在不会覆盖。

resetenv:移除指定的环境变量。

unsetenv:移除指定的环境变量。

server-state-base server-state-file load-server-state-from-file { global | local | none }server-state-file-name []

load-server-state-from-file:在defaults、listen、backend中定义。

server-state-base:在global中定义

server-state-file:在global中定义

Tips 1:这个配置暂时不知道是什么意思。-_-!!

这里有一个关于 server-state的讨论:http://www.serverphorums.com/read.php?10,1478702

ulimit-n

设置每个进程的最大文件描述符的数量,因为在Haproxy中会自动计算,所以这个不建议设置。

unix-bind [ prefix ] [ mode ] [ user ] [ uid ] [ group ] [ gid ]

node

当前服务器存在有多个进程,或启动多个实例,配置才生效。

description

但前实例的描述

51degrees-data-file

51degrees-property-name-list [ …]

51degrees-property-separator

51degrees-cache-size

wurfl-data-file

wurfl-information-list []*

wurfl-information-list-separator

wurfl-patch-file []

wurfl-engine-mode { accuracy | performance }

wurfl-cache-size [,]

wurfl-useragent-priority { plain | sideloaded_browser }

二、性能优化配置

max-spread-checks

spread-checks <0..50, in percent>

maxconn

maxconnrate

maxconn:设置每个进程的最大并发连接数值,相当于命令行中的“-n”参数。

maxconnrate:设置每个进程每秒种的最大链接数。

Tips 1:maxconnrate限制的优先级高于maxconn

maxconn 51200

maxconnrate 25600

maxcomprate

maxcompcpuusage

tune.comp.maxlevel

tune.comp.maxlevel:设置session的压缩级别,默认1,选值1-6,压缩级别越高CPU的使用率越高,但同时传输的数据越小。

maxcompcpuusage:限制压缩算法占用CPU的百分比,默认100,设置降低该值,来防止因为压缩的算法,而导致高延迟。

maxcomprate:限制每秒钟的压缩数据量的大小(单位:KB)。当在会话期间,如果达到该限制值,那么系统将降低tune.comp.maxlevel。如果在会话开始的时,已经达到该限制,则系统完全不压缩该会话。

maxpipes

限制进程每秒中管道的数,默认是maxconn / 4,因为一个 pipes包括2个文件描述符,所以该值的设置将会影响ulimit-n.

maxsessrate

tune.maxaccept

maxsessrate:限制进程每秒钟处理session的数量,如果到达该限制,则不再接受新的链接。

tune.maxaccept:默认是64,设置为-1表示完全禁用,通常不需要设置该值。

maxzlibmem

限制内存通过zlib的大小,默认是0,表示不限制。

noepoll

禁用epoll,等同于命令行的 -de

nokqueue

禁用kqueue,等于命令行的 -dk

nopoll

禁用poll,等同于命令行 -dp

nosplice

option splice-auto

no option splice-auto

option splice-request

no option splice-request

option splice-response

no option splice-response

以上同时相关的。后6个defaults、listen、frontend、backend中设置。

nogetaddrinfo

等同于命令行 -dG

noreuseport

等同于命令行-dR

tune.buffers.limit

tune.buffers.reserve

进程缓存,如果不是haproxy的核心开发者,不建议修改这2个值。

tune.buffers.limit:默认值是0,表示不限制

tune.buffers.reserve:默认值是2

tune.bufsize

tune.chksize

tune.bufsize:单位字节,默认是16384,不建议修改,太小可能会引发错误,太大会浪费内存。

tune.chksize:单位字节,默认是16384

tune.http.cookielen

限制cookie的长度,默认63字节,不建议修改

tune.http.maxhdr

请求头的数量,默认是101

tune.idletimer

默认是1000,可选值0-65535

tune.lua.forced-yield

tune.lua.maxmem

tune.lua.session-timeout

tune.lua.task-timeout

tune.lua.service-timeout

lua脚本的相关性能设置。

tune.maxpollevents

进程调用poll系统的数量,默认200

tune.maxrewrite

单位字节:通常设置在1024左右。

tune.pattern.cache-size

查找正则的缓存,不建议修改。

tune.pipesize

pipe的缓存大小,不建议修改。

tune.rcvbuf.client

tune.rcvbuf.server

tune.recv_enough

tune.sndbuf.client

tune.sndbuf.server

socket的接受/发送缓存大小。默认是0,表示自动调整。

tune.vars.global-max-size

tune.vars.proc-max-size

tune.vars.reqres-max-size

tune.vars.sess-max-size

tune.vars.txn-max-size

变量系统的相关设置。

tune.zlib.memlevel

tune.zlib.windowsize

zlib的参数设置。

三、Debug

debug

等同与命令行中 -d

quiet

等同于命令中 -q

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值