nginx 优化 为 nginx 配置超时时间,保护服务器的系统资源

配置Nginx的超时时间,提高服务器的性能,降低客户端的等待时间。同时,在受到DOS攻击时,可以起到缓解作用。特殊情况下,请根据具体性能需求进行调优。

连接超时的作用

  1. 将无用的连接设置为尽快超时,可以保护服务器的系统资源(CPU、内存、磁盘)
  2. 当连接很多时,及时断掉那些建立好的但又长时间不做事的连接,以减少其占用的服务器资源
  3. 如果黑客攻击,会不断地和服务器建立连接,因此设置连接超时以防止大量消耗服务器的资源
  4. 如果用户请求了动态服务,则 Nginx 就会建立连接,请求 FastCGI 服务以及后端 MySQL 服务,设置连接超时,使得在用户容忍的时间内返回数据

在配置文件nginx.conf中的http段配置超时

http { 	
	#读取http头部的超时时间,单位秒,连接建立后,服务端接收http头部,规定时间内没收到,则超时,返回给客服端408(request time out)
    client_header_timeout 10;

    #读取http body的超时时间,单位秒,客户端请求主体读取超时时间,如果在这个时间后客户端还没有发送任何数据, Nginx返回“Request time out(408)”错误,默认值是60。
    client_body_timeout 10;

    #指定响应客户端的超时时间,这个超时仅限于两个阅读活动之间的时间,如果这 个时间后客户端没有任何活动,Nginx将会关闭连接。 
    send_timeout 30;

 
    #第一个参数指定客户端连接保持活动的超时时间,在这个时间之后,服务器会关掉连接,第二个参数是可选的,它指定了消息头保持活动的有效时间,它可以告诉某些浏览器关闭连接,因此服务器就不必关闭连接了,如果没有这个参数,Nginx 不会发送Keep-Alive头。第一个参数默认是75。 
    keepalive_timeout 5 30;
    
    #域名解析超时时间,单位秒
    #resolve_timeout 10;
    
    #nginx服务器与被代理服务连接超时时间,代理超时
    proxy_connect_timeout 60;

    #nginx服务器发送数据给被代理服务器超时时间,单位秒,规定时间内nginx服务器没发送数据,则超时
    proxy_send_timeout 600;

    #nginx服务器接收被代理服务器数据超时时间,单位秒,规定时间内nginx服务器没收到数据,则超时
    proxy_read_timeout 600;
}

设置适当的超时时间

设置ssl timeout的原因是避免攻击者建立大量无效链接,或者慢速攻击。

	
server { 
… 
	ssl_session_timeout 5m; 超时时间5分钟 
	… 
}

猜你喜欢

转载自blog.csdn.net/agonie201218/article/details/129616464