zoukankan      html  css  js  c++  java
  • nginx 网络层的优化

    TCP三次握手四次挥手

    系统层的优化,主动建立连接时的重试次数

    net.ipv4.tcp_syn_retries = 6
    

      建立连接时本地端口可用范围;手动可以tiaoz

    net.ipv4.ip_local_port_range = 32768 60999
    

      应用层建立连接超时时间

    Syntax: proxy_connect_timeout time;
    Default: proxy_connect_timeout 60s; 
    Context: http, server, location
    
    
    
    
    
    Syntax: proxy_connect_timeout time;
    Default: proxy_connect_timeout 60s; 
    Context: stream, server
    

      系统级别调整半连接的最大数量

    net.ipv4.tcp_max_syn_backlog #  SYN_RCVD状态连接的最大个数
    
    
    
    net.ipv4.tcp_synack_retries  #被动建立连接超时重试次数
    

      服务器处理三次握手

    如何应对SYN 攻击

     攻击者短时间伪造不同IP地址的SYN报文,快速占满backlog队列,是服务器不能正常为用户提供服务

    net.core.netdev_max_backlog:接收来自网卡、但未被内核协议栈处理的报文队列长度
    net.ipv4.tcp_max_syn_backlog:SYN_RCVD状态连接的最大个数
    net.ipv4.tcp_abort_on_overflow:超出处理能力时,对新来的SYN直接回包RST,丢弃连接
    tcp_syncookies

    文件句柄数的上限

    操作系统的全局设置

    fs.file-max
    
    
    操作系统可使用的最大句柄数
    使用fs.file -nr 可以查看当前已分配、正在使用 、上限
    
    
    
    设置限制用户
    
    /etc/security/limits.conf
    
    
    root soft nofile 65535
    root hard nofile 65535
    
    
    限制进程
    Syntax: worker_rlimit_nofile number;
    Default: —
    Context: main
    

      设置worker进程最大并发连接数

    Syntax: worker_connections number;
    Default: worker_connections 512; 
    Context: events
    

      TCPFast Open

    系统层打开

    net.ipv4.tcp_fastopen 
    0 :关闭
    1 :作为客户端是可以使用
    2:作为服务端是可以使用
    3 :客户端服务端都可以使用
    

      nginx进程里的配置

    Syntax: listen address[:port] [fastopen=number];
    Default: listen *:80 | *:8000; 
    Context: server
    
    
    fastopen=number 
    为防止带数据的SYN共击,限制最大长度,指定TFO队列最大长度
    

      滑动窗口

    TCP发送消息

    TCP 接收消息

    nginx接收body接收读操作两次超时设置

    Syntax: client_body_timeout time;
    Default: client_body_timeout 60s; 
    Context: http, server, location
    

      nginx两次写操作超时设置

    Syntax: send_timeout time;
    Default: send_timeout 60s; 
    Context: http, server, location
    

      以上四层读写超时指令

    Syntax: proxy_timeout timeout;
    Default: proxy_timeout 10m; 
    Context: stream, server
    

      

    Nagle 算法,充分利用带宽。打开Nagle算法:合并多个小报文一起发送介绍

    吞吐量优先启用Nagle算法

    tcp_nodelay off  启用
    

      低时延优先禁用

    tcp_nodelay on  关闭
    

      指令介绍

    Syntax: tcp_nodelay on | off;
    Default: tcp_nodelay on; 
    Context: http, server, location
    

      四层的指令

    Syntax: tcp_nodelay on | off;
    Default: tcp_nodelay on; 
    Context: stream, server
    

      nginx配置避免发送小报文

    Syntax: postpone_output size;
    Default: postpone_output 1460; 
    Context: http, server, location
    

      TCP的keeplive

    功能介绍:检测实际断掉的连接;用于维护与客户端之间的防火墙有活跃网络包

    系统层面的控制

    net.ipv4.tcp_keepalive_time = 7200   发送心跳周期
    net.ipv4.tcp_keepalive_intvl = 75  探测包发送间隔
    net.ipv4.tcp_keepalive_probes = 9 探测包重传次数
    nginx 方面的控制
    so_keepalive=30m::10 
    keepidle, keepintvl, keepcnt
       
     
    lingering_close 延迟关闭的意义
       当nginx处理完成后调用close关闭连接后,若接收缓冲区仍然受到客户端发来的内容,则服务器会想客户端发送RST包关闭连接,导致客户端由于RST而忽略了http response
    nginx 配置指令
    Syntax: lingering_close off | on | always;
    Default: lingering_close on; 
    Context: http, server, location
       off : 关闭
       on: 由nginx判断,动用户请求未完成时启用功能,否则及时关闭连接
       always:无条件启用该功能
    
    Syntax: lingering_time time;
    Default: lingering_time 30s; 
    Context: http, server, location
      当该功能启用时,最长的读取用户请求内容的时长,达到后立即关闭连接
    
    
    Syntax: lingering_timeout time;
    Default: lingering_timeout 5s; 
    Context: http, server, location
    启用该功能时,检测客户端是否仍然请求内容到达,若超时后没有请求数据,则立刻断开
    

      当其他读写超时指令生效引发连接关闭时,通过发送RST立刻释放断开,内存等资源

    Syntax: reset_timedout_connection on | off;
    Default: reset_timedout_connection off; 
    Context: http, server, location
    

      

      

     
    草都可以从石头缝隙中长出来更可况你呢
  • 相关阅读:
    java的锁机制
    视图生命周期
    UIButton @selector 想要传递多个参数
    UIButton @selector 想要传递多个参数
    UITableView 实现A1A2---Z1Z2.。。。。
    iOS 代理
    PickerView
    照片墙
    分栏控制器
    XIB 拖控件
  • 原文地址:https://www.cnblogs.com/rdchenxi/p/11218724.html
Copyright © 2011-2022 走看看