当客户端连接速度较慢时,Nginx 的连接会重置。这只是一个静态 http 网站...没有后端。有什么办法可以阻止连接速度较慢时的连接重置吗?我尝试调整这些timeout
值,但没有成功。
在日志中,我看到此错误:
2015/09/21 17:11:57 [info] 8704#0: *44 client prematurely closed connection while sending response to client
events {
worker_connections 128;
use epoll;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main
'$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio"';
client_header_timeout 12s;
client_body_timeout 12s;
send_timeout 10s;
keepalive_timeout 15s;
# open_file_cache max=1s inactive=1s;
#open_file_cache max=500 inactive=600s;
# open_file_cache_valid 300s;
open_file_cache_errors on;
expires 24h;
client_max_body_size 20m;
connection_pool_size 256;
client_header_buffer_size 1k;
large_client_header_buffers 4 2k;
request_pool_size 4k;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain;
output_buffers 1 32k;
postpone_output 1460;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
ignore_invalid_headers on;
server_tokens off;
index index.html index.php;
答案1
这客户正在关闭连接,而不是您的服务器。这与任何服务器超时设置无关。
防止这种情况的唯一方法是让您的服务器更快,这样客户端就不太可能放弃等待服务器响应。请注意,这些错误中有一小部分是完全正常的(info
毕竟,它会在 nginx 日志中被标记),因为用户通常都是一群相当没有耐心的人。