nginx代理过程中涉及到的时间问题
在nginx做反向代理时涉及到ngx_http_upstream_module模块中的变量介绍
1、nginx内的时间定义
1.1 request_time
单位为秒
指的就是从接收用户请求的第一个字节到发送完响应数据的时间,即$request_time 包括接收客户端请求数据的时间、后端程序响应的时间、发送响应数据给客户端的时间
1.2 upstream_response_time
单位为秒
是指从Nginx向后端建立连接开始到接收完数据然后断开连接为止的时间
1.3 upstream_connect_time
单位为秒
nginx跟后端建立连接的时间,如果是到后端使用了加密协议,该时间包括握手的时间
1.4 upstream_header_time
单位为秒
接收后端server响应头部的时间
设置代理超时时间 nginx使用proxy模块时,默认的读取超时时间是60s
location / { proxy_connect_timeout 120; #后端服务器连接的超时时间_发起握手等候响应超时时间 proxy_send_timeout 120; #后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据 proxy_read_timeout 120; #连接成功后等候后端服务器响应时间其实已经进入后端的排队之中等候处理(也可以说是后端服务器处理请求的时间) client_header_timeout 60s; #指定等待client发送一个请求头的超时时间(例如:GET / HTTP/1.1).仅当在一次read中,没有收到请求头,才会算成超时 client_body_timeout 60s; #该指令设置请求体(request body)的读超时时间。仅当在一次readstep中,没有得到请求体,就会设为超时 keepalive_timeout 60s; #第一个参数指定了与client的keep-alive连接超时时间。服务器将会在这个时间后关闭连接。 resolver_timeout 30s; #该指令设置DNS解析超时时间 send_timeout 120; }