优秀的编程知识分享平台

网站首页 > 技术文章 正文

nginx 代理超时与重试(nginx代理超时时间)

nanyue 2024-08-06 18:25:16 技术文章 5 ℃

nginx代理超时与重试知识。

nginx主要有4类超时配置:客户端超时设置、dns解析超时配置、代理超时设置、ngx_lua模块lua相关超时设置。

  • 客户端超时设置

对于客户端超时主要设置有读取请求头超时时间、读取请求体超时时间、发送响应超时时间、长连接超时时间。

client_header_timeout time:设置读取请求头超时时间,默认60s,超时则返回408 http code码。

client_body_timeout time:设置客户端内容体超时时间,默认60s,如果超时时间内客户端没有发送请求体,则响应408 httpcode码。

send_timeout time:设置发送响应到客户端的超时时间,默认60s,如,超时时间内客户端没有接受到任何响应,则nginx关闭此连接。

keepalive_timeout:设置http长连接超时时间。

  • DNS解析超时设置

resolver_timeout 30s:设置DNS解析超时时间,默认30s。其配合resolver address…[valid=time]进行DNS解析。如使用upstream 设置域名服务。

  • 代理超时设置

主要包含三组配置:网络连接/读写超时设置、失败重试机制设置、upstream存活超时设置。

  1. 网络连接/读写超时设置

proxy_connect_timeout time:与上游/后端服务器建立连接的超时时间,默认为60s,最长为75s。

proxy_read_timeout time:设置读取后端服务器响应的超时时间,默认60s,若在此超时时间后端服务器没有发送任何响应,则nginx关闭此连接。

proxy_send_timeout time:设置往后端发送请求的超时时间,默认为60s。

  1. 失败重试机制设置

proxy_next_upstream error|timeout|invalid_header|http_500|http_502|http_503…:配置什么情况下需要请求下一台上游服务器进行重试。

proxy_next_upstream_tries number:设置重试次数。默认0表示不限制。

proxy_next_upstream_timeout time:设置重试最大时间,默认0不限制。

综上及proxy_next_upstream_timeout时间内允许Proxy_next_upstream_tries次重试。

  1. upstream 存活超时设置

max_fails和fail_timeout:配置什么时候将上游服务器认定为不可用/不存活。即上游服务器在fail_timeout时间内失败了max_fails次,则认为该上游服务器不可用/不存活。

  1. ngx_lua 超时设置

当使用ngx_lua时,也应考虑设置读写超时,如

lua_socket_connect_timeout (time);

lua_socket_send_timeout (time);

lua_socket_read_timeout (time);

注,time具体为单位ms的时间。

最近发表
标签列表