nginx访问服务器未响应,nginx与后端的超时设置测试

本文详细介绍了在使用Nginx作为前端服务器时,如何配置upstream的fail_timeout和max_fails以判断后端服务器状态,以及proxy_connect_timeout、proxy_read_timeout和proxy_send_timeout对连接和响应时间的影响。通过实例测试,解析了这些超时设置在实际操作中的应用和效果。
摘要由CSDN通过智能技术生成

当用nginx来做前端的时候,有几个超时的设置是需要留意的:

upstream的 fail_timeout和max_fails

pstream的这2个参数是配合使用的,用来判断负载均衡upstream中的某个server是否失效。在fail_timeout的时间内,nignx与upstream中某个server的连接尝试失败了max_fails次,则nginx会认为该server已经失效。在接下来的 fail_timeout时间内,nginx不再将请求分发给失效的server。

fail_timeout默认为10秒,max_fails默认为1。是指在10秒内nginx与后端server连接失败尝试只有一次,如果在10秒内nginx与后端的连接失败达到一次,nginx认为这个server已失效,在接下来的10秒内,nginx将不会分发请求到这台后端。

如果max_fails=0,即关闭后端服务器健康检查,如果权重一样,那么每次请求都会有机会发到后端不可用的服务器。

另外,fail_timeout设置的时间对响应时间没影响,这个响应时间是用接下来的proxy_connect_timeout和proxy_read_timeout来控制。

proxy_connect_timeout

nginx与后端连接的超时时间,单位为秒,默认为60秒。我们在nginx错误日志里面看到的(110: Connection timed out),就是指nginx与后端连接已经超时。

proxy_read_timeout

建立连接后,nginx等候读取后端服务器响应的时间,默认为60秒。在一些比较繁忙的后端,比如线程数经常达到峰值了的tomcat,这个值注意不要设得太低,虽然线程数已经用光,但请求已经进入待队列之中。

proxy_send_timeout

nginx转发请求到后端的超时时间,默认为60秒,在这段时间内nginx没将请求数据发到后端将关闭连接。

这个在网站有比较多像表单(post)之类的需要留意一下。

可以用测试来对对上面所说的:

用来的测试的系统结构如下

web:8081(172.30.254.32)

/

request--〉nginx:80(172.30.254.33)-

\

web:81(172.30.254.33)

=============================================

测试1:测试fail_timeout、max_fails、proxy_connect_timeout

//nginx配置

--------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值