问题说明
在集群下,有别人服务器宕机,导致访问过慢,请求时间变长,需要设置服务器的连接超时、请求、响应的时间
问题解决
加入以下代码
proxy_connect_timeout 1;
proxy_read_timeout 1;
proxy_send_timeout 1;
- proxy_connect_timeout 指定了与后端代理服务器建立连接的超时时间。在这个示例中,它被设置为 1 秒钟。
- proxy_read_timeout 指定了从后端代理服务器读取响应的超时时间。如果在指定的时间内没有收到完整的响应,Nginx 将终止连接。在这个示例中,它被设置为 1 秒钟。
- proxy_send_timeout 指定了向后端代理服务器发送请求的超时时间。如果发送请求的时间超过了指定的时间,Nginx 将终止连接。在这个示例中,它被设置为 1 秒钟。
这些超时时间都是以秒为单位的。根据你的实际需求和后端代理服务器的性能,你可以适当调整这些值。如果后端代理服务器的响应时间较长,你可能需要将超时时间设得更长一些,以确保在合理的时间内完成请求和响应。
需要注意的是,过小的超时时间可能导致连接过早地被终止,而过大的超时时间则可能导致连接资源被长时间占用。因此,你应该根据实际情况来平衡超时时间的设置。
案例:
location /api {
default_type application/json;
#internal;
keepalive_timeout 30s;
keepalive_requests 1000;
#支持keep-alive
proxy_http_version 1.1;
rewrite /api(/.*) $1 break;
proxy_pass_request_headers on;
#more_clear_input_headers Accept-Encoding;
proxy_next_upstream error timeout;
#proxy_pass http://127.0.0.1:8081;
proxy_pass http://backend;
proxy_connect_timeout 1;
proxy_read_timeout 1;
proxy_send_timeout 1;
}