导读少女引擎是淘宝基于Nginx的二次开发版本。少女引擎与Nginx完全兼容,所以少女引擎可以根据Nginx进行配置。然而,Tengine提供了许多实用功能和性能优化。例如,对于上游模块,下面解释Tengine重新开发的一些小模块。
后端长连接超时功能
ngx _ http _ upstream _ keepalive _ module为nginx的长后端连接增加了超时支持:
上游后端{
服务器127 . 0 . 0 . 1:8080;
keepalive 32
keepalive _ timeout 30s#将后端连接的最大空闲时间设置为30s
}
1)keepalive_timeout
语法:keepalive_timeout
默认:-
背景:上游
该指令设置后端长连接的最大空空闲超时时间。参数的时间单位可以是秒、毫秒和分钟。默认时间单位是秒。
健康检查模块功能
Ngx_http_upstream_check_module,可以为Tengine提供主动后端服务器健康检查功能。Tengine-1.4.0之前默认不打开模块,但配置编译选项时可以打开:。/configure–with-http _ upstream _ check _ module。
1)检查
语法:check interval =毫秒[fall = count][rise = count][time out =毫秒][default _ down = true | false][type = TCP | http | SSL _ hello | MySQL | ajp][port = check _ port]
默认值:interval = 30000 fall = 5 rise = 2 time out = 1000 default _ down = true type = TCP
背景:上游
该指令可以打开后端服务器的健康检查功能,指令背后的参数含义是:
间隔:发送到后端的运行状况检查包之间的间隔。
Fall(fall_count):如果连续失败的次数达到fall_count,则认为服务器停机。
上升(上升_计数):如果连续成功的次数达到上升_计数,则服务器被视为上升。
超时:后端健康请求的超时时间。
Default_down:设置服务器的初始状态。如果为真,说明默认为down如果它是假的,它是向上的。默认值为真,即服务器最初被认为不可用,健康检查包在达到一定数量的成功之前不会被认为是健康的。
类型:健康检查包的类型,现在支持以下类型
Tcp:简单的tcp连接。如果连接成功,后端正常。
Ssl_hello:发送一个初始的SSL hello包,并从服务器接受SSL hello包。
Http:发送HTTP请求,通过后端回复包的状态判断后端是否存活。
Mysql:连接到mysql服务器,通过接收服务器发来的问候包来判断后端是否活着。
AJP:将ajp协议的Cping包发送到后端,通过接收Cpong包判断后端是否存活。
端口:指定后端服务器的检查端口。您可以指定不同于实际服务的后端服务器端口。比如后端提供一个端口为443的应用,你可以通过检查端口80的状态来判断后端的健康状况。默认值为0,这意味着它与后端服务器提供真实服务的端口相同。该选项出现在Tengine-1.4.0中。
2)check_keepalive_requests
语法:check _ keepalive _ requests _ request _ num
默认值:1
背景:上游
该指令可以配置一个连接发送的请求数,默认值为1,表示Tengine完成一个请求后,连接会关闭。
3)check_http_send
语法:check_http_send http_packet
默认:“GET / HTTP/1.0”
背景:上游
该指令可以配置http健康检查包发送的请求内容。为了减少传输的数据量,建议使用“HEAD”方法。当使用长连接进行运行状况检查时,需要在指令中添加保活请求头,例如“head/http/1.1 r n connection:keep-alive r n r n”。同时,在采用“GET”方法时,请求uri的大小不能太大,以保证传输可以在一个间隔内完成,否则会被健康检查模块视为后端服务器或网络异常。
4)check_http_expect_alive
语法:check _ http _ expect _ alive[http _ 2xx | http _ 3xx | http _ 4xx | http _ 5xx]
默认:http_2xx | http_3xx
背景:上游
该指令指定了HTTP回复的成功状态。默认情况下,2XX和3XX的状态被认为是健康的。
5)check_shm_size
语法:check_shm_size size
默认值:1M
上下文:http
所有后端服务器运行状况检查状态都存储在共享内存中。该指令可以设置共享内存的大小。默认值为1M。如果您有超过1000台服务器,并且在配置中出错,您可能需要增加内存大小。
6)检查_状态
语法:check_status [html|csv|json]
默认值:check_status html
背景:位置
显示服务器的运行状况页面。该指令需要在http块中配置。Tengine-1.4.0之后,可以配置显示页面的格式。支持的格式有html、csv和json。默认类型是html。您也可以通过请求的参数指定格式,假设“/status”是您的状态页面的网址,并且格式参数更改页面的格式,例如:
/状态?format=html
/状态?format=csv
/状态?format=json
同时,您还可以通过状态参数获取相同服务器状态的列表,例如:
/状态?format = html & amp状态=关闭
/状态?format = csv & amp状态=向上
下面是一个HTML状态页面的例子(服务器号是后端服务器的数量,生成是Nginx重载的次数。Index是服务器的索引,upstream是配置中的Upstream的名称,Name是服务器IP,Status是服务器的状态,Rise是服务器连续检查成功的次数,Fall是连续检查失败的次数,check类型是检查的方式,Check端口是专门为后端的健康检查设置的端口):
以下是csv格式页面的示例:
0,后端,106.187.48.116:80,up,46,0,http,80
以下是json格式页面的示例:
{ "服务器":{
“总计”:1,
【代】:3、
"服务器":[
{“index”:0,“upstream”:“后端”、“name”:“106 . 187 . 48 . 116:80”、“status”:“up”、“rise”:58、“fall”:0、“type”:“http”、“port”:80 }
]
}}
使用增强型上游示例:
http {
上游集群1 {
#简单循环赛
服务器192 . 168 . 0 . 1:80;
服务器192 . 168 . 0 . 2:80;
检查间隔=3000上升=2下降=5超时=1000类型= http
check _ HTTP _ send“HEAD/HTTP/1.0”;
check _ http _ expect _ alive http _ 2xx http _ 3xx;
}
上游集群2 {
#简单循环赛
服务器192 . 168 . 0 . 3:80;
服务器192 . 168 . 0 . 4:80;
检查间隔=3000上升=2下降=5超时=1000类型= http
check _ keepalive _ requests 100
check _ HTTP _ send“HEAD/HTTP/1.1 Connection:keep-alive”;
check _ http _ expect _ alive http _ 2xx http _ 3xx;
}
服务器{
听80;
位置/1 {
proxy _ pass http://cluster 1;
}
位置/2 {
proxy _ pass http://cluster 2;
}
位置/状态{
check _ status
access _ log off
允许一些。IP . ADD.RESS
否认一切;
}
}
}
上游域名解析模块功能
ngx _ http _ upstream _ dynamic _ module,这个模块提供了运行时在upstream中动态解析服务器域名的功能,很少使用。
动态解析(_ r)
语法:dynamic _ resolve[fallback =陈旧| next | shut down][fail _ time out = time]
默认:-
背景:上游。
指定在上游启用动态域名解析功能,回退参数指定无法解析域名时要采取的操作:
陈旧,使用tengine启动时获得的旧地址
接下来,选择上游的下一台服务器
关机,结束当前请求
fail_timeout参数指定DNS服务被认为不可用的时间,即DNS请求失败后多久,假设DNS服务仍然不可用,以减少无效DNS的查询。
上游后端{
dynamic _ resolve fallback =陈旧fail _ timeout = 30s
服务器a.com;
服务器b.com;
}
极限上游试函数
限制上游重试次数(限制每个请求访问后端服务器的最大尝试次数)支持代理、memcached、fastcgi、scgi和uwsgi模块。您可以使用以下说明来限制访问次数。
#限制fastcgi代理的后端尝试次数
fastcgi_upstream_tries num
#限制代理的后端尝试次数
proxy_upstream_tries数量
#限制memcached代理的后端尝试次数
memcached_upstream_tries num
#限制scgi代理的后端尝试次数
scgi_upstream_tries num
#限制uwsgi代理的后端尝试次数
uwsgi_upstream_tries num
1.《upstream Tengine新增nginx upstream模块的使用》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《upstream Tengine新增nginx upstream模块的使用》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/junshi/1040883.html