Nginx的超时timeout配置详解
作者&投稿:壤受 (若有异议请与网页底部的电邮联系)
本文介绍 Nginx 的 超时(timeout)配置。分享给大家,具体如下:
Nginx 处理的每个请求均有相应的超时设置。如果做好这些超时时间的限定,判定超时后资源被释放,用来处理其他的请求,以此提升 Nginx 的性能。
keepalive_timeout
HTTP 是一种无状态协议,客户端向服务器发送一个 TCP 请求,服务端响应完毕后断开连接。
如果客户端向服务器发送多个请求,每个请求都要建立各自独立的连接以传输数据。
HTTP 有一个 KeepAlive 模式,它告诉 webserver 在处理完一个请求后保持这个 TCP 连接的打开状态。若接收到来自客户端的其它请求,服务端会利用这个未被关闭的连接,而不需要再建立一个连接。
KeepAlive 在一段时间内保持打开状态,它们会在这段时间内占用资源。占用过多就会影响性能。
Nginx 使用 keepalive_timeout 来指定 KeepAlive 的超时时间(timeout)。指定每个 TCP 连接最多可以保持多长时间。Nginx 的默认值是 75 秒,有些浏览器最多只保持 60 秒,所以可以设定为 60 秒。若将它设置为 0,就禁止了 keepalive 连接。
配置段: http, server, locationkeepalive_timeout 60s;
client_body_timeout
指定客户端与服务端建立连接后发送 request body 的超时时间。如果客户端在指定时间内没有发送任何内容,Nginx 返回 HTTP 408(Request Timed Out)。
配置段: http, server, locationclient_body_timeout 20s;
client_header_timeout
客户端向服务端发送一个完整的 request header 的超时时间。如果客户端在指定时间内没有发送一个完整的 request header,Nginx 返回 HTTP 408(Request Timed Out)。
配置段: http, server, locationclient_header_timeout 10s;
send_timeout
服务端向客户端传输数据的超时时间。
配置段: http, server, locationsend_timeout 30s;
客户度连接nginx超时, 建议5s内
接收客户端header超时, 默认60s, 如果60s内没有收到完整的http包头, 返回408
Syntax: client_header_timeout time;Default: client_header_timeout 60s;Context: http, serverDefines a timeout for reading client request header. If a client does not transmit the entire header within this time, the 408 (Request Time-out) error is returned to the client.
接收客户端body超时, 默认60s, 如果连续的60s内没有收到客户端的1个字节, 返回408
Syntax: client_body_timeout time;Default: client_body_timeout 60s;Context: http, server, locationDefines a timeout for reading client request body. The timeout is set only for a period between two successive read operations, not for the transmission of the whole request body. If a client does not transmit anything within this time, the 408 (Request Time-out) error is returned to the client.
keepalive时间,默认75s,通常keepalive_timeout应该比client_body_timeout大
Syntax: keepalive_timeout timeout [header_timeout];Default: keepalive_timeout 75s;Context: http, server, locationThe first parameter sets a timeout during which a keep-alive client connection will stay open on the server side. The zero value disables keep-alive client connections. The optional second parameter sets a value in the “Keep-Alive: timeout=time” response header field. Two parameters may differ.
流媒体服务器TiTopStreamer和WowzaStreamingEngine全面对比
TiTopStreamer的局限尽管如此,TiTopStreamer并非完美无缺。目前,它仅支持Linux Server,不适用于Windows Server,但考虑到服务器安全性,这一限制并不构成重大问题。此外,TiTop在SSL支持上采用Nginx,相较于Wowza的内置支持,安装配置可能稍显复杂,但Nginx的流行度和文档资源丰富,使得这一过程相对容易。总...
kubernetes常见故障
kube-system nginx-ingress-controller-6fc5bcc 1\/1 Running 描述它以检索端口: # kubectl describe pod nginx-ingress-controller-6fc5bcc --namespace kube-system \\ | grep Ports 最后,连接到Pod: $ kubectl port-forward nginx-ingress-controller-6fc5bcc 3000:80 --namespace kube-system 此时,...
如何系统地学习 Docker
同一个网段的ip可以到处使用 ssh=$(weave run 10\/weaveworks\/guides $ cd weave-gs\/aws-nginx-ubuntu-simple 在克隆完仓库之后,我们执行下面的脚本,这个脚本将会部署两个 t1.micro 实例,
明修口服: 浏览器打开时提示504 Gateway Time-out错误搜索,是由服务器未能及时响应客户端造成的. 解决方法: 1、如果是流量太大引起的,请增加服务器的流量. 2、如果是WEB服务器的设置引起的,请重新进行设置. 3、这个问题只能由服务器的管理员才能解决,客户端无法解决.
萨尔图区19321697760: 如何解决nginx 504 Gateway Time - out错误 - ?
明修口服: 这是由于服务器端的配置出现了状况,平时也很少见到.具体解决法就是修改配置文件:1、把max_children由之前的10改为现在的30,这样就可以保证有充足的php-cgi进程可以被使用;把request_terminate_timeout由之前的0s改为60s,这样...
萨尔图区19321697760: nginx奇怪的超时110: Connection timed out?
明修口服: 很明显是架构问题,nginx本身可能也存在原因,而不是后端,不然另一台nginx就也会爆超时,那么你的2个nginx是做反向代理到后方对吧,你的业务会话超时时间是多少,这个可能要问研发,当nginxA收到数据向后发送代理时,开始进行会话传输,假如说会话超时是10S,断开后,经过5S,数据又到nginxB了,那么先前的会话并没有断开,你再去连肯定会超时,所以解决方案就是看下会话时间还有nginx的会话保持时间是多少,建议改成0或者自己调节,默认记得keepalive_timeout是60,如果架构是一台nginx做反向代理,基本没有这个问题.可能我理解也有不对
萨尔图区19321697760: 再打开网页时会出现这个是什么意思啊??
明修口服: 这是“网关超时” 解决Nginx 504 Gateway Time-out的一些方法 在CentOS下配置lnmp组合基本上用的都是同样的配置文件,一直都没出现过问题,可最近在一个vps上安装同样的环境之后,网站在线10多人就出 现了打开速度非常缓慢的情况,...
萨尔图区19321697760: apache的timeout时间修改后无效 - ?
明修口服: 请告知你的OS是哪个?以及你使用的Apche版本是多少?查看有无『httpd.conf』?/etc/httpd/conf/httpd.conf 强烈怀疑你改错档案了 httpd.default.conf是Apache的备用文件 Apache主要运行的设定档为httpd.conf 所以即便你重启Apache也没用,因为它读取的设定档为httpd.conf而非httpd.default.conf 因此结论是...你改了等於没改,因为它压根是存取httpd.conf的 其实PHP.ini也有timeout的机制 max_execution_time
萨尔图区19321697760: 访问php页面出现504 Gateway Timeout 怎么解决 - ?
明修口服: 一般看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out 现在的网站, 尤其某些论坛有大量...
萨尔图区19321697760: 如何解决nginx 504 Gateway Time - out错误 - ?
明修口服: 504 gateway time-out怎么解决? Nginx所报告的“504 gateway time-out”的含义指定的客户端所发出的的请求没有到达网关,换句话说就是请求没有到可以执行的PHP-fpm. 一般来说,Nginx报告的“504 gateway time-out”则是与nginx.conf的...
萨尔图区19321697760: 访问php页面出现504 Gateway Timeout 怎么解决 - ?
明修口服: 一般看来, 这种情况可能是由于nginx默认的fastcgi进程响应的缓冲区太小造成的, 这将导致fastcgi进程被挂起, 如果你的fastcgi服务对这个挂起处理的不好, 那么最后就极有可能导致504 Gateway Time-out 现在的网站, 尤其某些论坛有大量...
萨尔图区19321697760: 访问php页面出现504 Gateway Timeout 怎么解决 - ?
明修口服: 情况一:由于nginx默认的fastcgi进程响应缓冲区太小造成 这种情况下导致fastcgi进程被挂起,如果fastcgi服务队这个挂起处理不是很好的话,就可能提示“504 Gateway Time-out”错误.情况一解决办法: 默认的fastcgi进程响应的缓冲区是8K...