Nginx上的各类超时时间可以分为如下两类:
一、Nginx作为服务端
client_header_timeout :用来设定客户端请求头部的读取超时时间。Nginx 在接收客户端发送的请求头部信息时,如果超出这个时间还没接收完整,就判定为超时。
client_body_timeout:用于设置客户端请求主体(比如提交 POST 数据时发送的内容主体)的读取超时时间。在该时间内如果没能完整读取客户端发送过来的请求主体内容,Nginx 将会返回相应的超时错误给客户端。
keepalive_timeout:用于设置与客户端保持连接的超时时间,也就是一个 HTTP 连接在空闲状态下能够维持的最长时间。超过这个时间,Nginx 会主动关闭这个空闲的连接,以释放服务器资源。
send_timeout:设置 Nginx 响应客户端请求时,向客户端发送响应数据的超时时间。如果在这个时间内没能将数据全部发送给客户端,会被视为发送超时。
二、Nginx作为客户端
proxy_connect_timeout:如果 Nginx 作为反向代理服务器,该指令用于设置其与后端真实服务器建立连接的超时时间。在规定时间内若没能成功连接到后端服务器,就会返回连接超时的错误。
proxy_send_timeout:在 Nginx 作为反向代理时,设定其向后端服务器发送请求数据的超时时间,超出此时间没能发送完数据就视为超时。
proxy_read_timeout:同样在 Nginx 作为反向代理场景下,用于设置 Nginx 从后端服务器读取响应数据的超时时间,若超过该时间还未读完数据,就判定为超时。
在实际业务应用中,需要根据服务器的性能、网络环境以及具体业务的特点等因素,合理地对这些超时时间进行调整,以优化 Nginx 服务器的运行效率和服务质量。