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

  

  

 

nginx 网络层的优化的更多相关文章

  1. Nginx并发访问优化

    Nginx反向代理并发能力的强弱,直接影响到系统的稳定性.安装Nginx过程,默认配置并不涉及到过多的并发参数,作为产品运行,不得不考虑这些因素.Nginx作为产品运行,官方建议部署到Linux64位 ...

  2. Nginx 之六: Nginx十万并发优化

    操作 操作 Nginx 之六: Nginx十万并发优化

  3. Nginx配置性能优化与压力测试webbench【转】

    这一篇我们来说Nginx配置性能优化与压力测试webbench. 基本的 (优化过的)配置 我们将修改的唯一文件是nginx.conf,其中包含Nginx不同模块的所有设置.你应该能够在服务器的/et ...

  4. nginx错误界面优化和日志管理

    nginx错误界面优化 在进行web访问的时候,经常会遇到网站打不开报错的情况,nginx默认的界面并不美观,我们可以通过重定向到自定义的错误页面,提升用户体验,比如淘宝的错误页面还有商品信息和广告. ...

  5. Nginx web服务优化 (一)

    1.Nginx基本安全优化 a.更改配置文件参数隐藏版本 编辑nginx.conf配置文件增加参数,实现隐藏Nginx版本号的方式如下.在nginx配置文件nginx.conf中的http标签段内加入 ...

  6. nginx web服务优化

    nginx基本安全优化 1. 调整参数隐藏nginx软件版本号信息 软件的漏洞和版本有关,我们应尽量隐藏或消除web服务对访问用户显示各类敏感信息(例如web软件名称及版本号等信息),这样恶意的用户就 ...

  7. Linux实战教学笔记38:企业级Nginx Web服务优化实战(下)

    四,Nginx站点目录及文件URL访问控制 4.1 根据扩展名限制程序和文件访问 Web2.0时代,绝大多数网站都是以用户为中心多的,例如:bbs,blog,sns产品,这几个产品都有一个共同特点,就 ...

  8. Linux实战教学笔记37:企业级Nginx Web服务优化实战(上)

    一,Nginx基本安全优化 1.1 调整参数隐藏Nginx软件版本号信息 一般来说,软件的漏洞都和版本有关,这个很像汽车的缺陷,同一批次的要有问题就都有问题,别的批次可能就都是好的.因此,我们应尽量隐 ...

  9. 企业级Nginx Web服务优化实战

    web优化一览总结表 优化类型 优化说明 优化方法 安全优化 隐藏nginx版本信息优化 修改nginx配置文件实现优化 server_tokens off: 修改nginx版本信息优化 修改ngin ...

随机推荐

  1. OO博客作业-《JML之卷》

    OO第三单元小结 一.JML语言理论基础以及应用工具链情况梳理 一句话来说,JML就是用于对JAVA程序设计逻辑的预先约定的一种语言,以便正确严格高效地完成程序以及展开测试,这在不能容忍细微错误的工程 ...

  2. 作业1:使用go搭建一个web-server

    todo1:搭建web-server的原理 todo2:go实现web-server

  3. Linux 文件属性 chgrp、chown、chmod的用法

    Linux 文件属性 ls 是 list 的意思,重点在显示文件的文件名与相关属性.选项 -al 表示列出所有的文件详细的权限与属性(包含隐藏文件,就是文件名第一个字符为 . 的文件) 第一栏代表这个 ...

  4. centos平台搭建Oracle11g数据库+远程连接

    经过了几天的摸爬滚打,终于成功的能在宿主机上(window10上的Plsql)去成功的连上虚拟机上的centos数据库 下面将自己的经验分享给大家: 具体的centos7.centos6上安装Orac ...

  5. Multisim中'地'的问题

    1.地其实就是一个参考电压 对于示波器而言,只用连接一个探头,另一个探头默认就是连接地.

  6. 探讨LoadRunner的并发用户和集合点

    近来跟踪一个项目,发现同事们在执行性能测试时,比较热衷于使用集合点,从概念上认为要得到并发用户就必须设置集合点,认为在执行一个压力测试脚本时,设置了集合点才算是有效的并发用户,没有设置结合点,就认为可 ...

  7. 【转】 WordPress数据库及各表结构分析

    默认WordPress一共有以下11个表.这里加上了默认的表前缀 wp_ . wp_commentmeta:存储评论的元数据wp_comments:存储评论wp_links:存储友情链接(Blogro ...

  8. Kubernetes(k8s)完整安装教程

    Kubernetes(k8s)完整安装教程  2019-08-27 2.3k 记录 发表评论 目录 1 安装 1.1 安装 Docker 1.2 安装 VirtualBox 1.3 安装 kubect ...

  9. CSS控制 文字超出部分显示省略号

    实现单行文本的溢出显示省略号, (需要加宽度width属来兼容部分浏览) <p style="width: 100px;overflow: hidden;white-space: no ...

  10. 获取度量数据:创建服务账户获取访问token

    kubectl create clusterrolebinding kubelet-api-test --clusterrole=system:kubelet-api-admin --servicea ...