网站首页 > 精选教程 正文
tcp_nopush:该指令必须在sendfile打开的状态下才会生效,主要 是用来提升网络包的传输'效率'
这个值在默认的情况下是出于关闭状态的
tcp_nodelay:该指令必须在keep-alive连接开启的情况下才生 效,来提高网络包传输的'实时性,它默认是出于开启状态的
Ngnix在发送数据的时候,如果是有数据就发,这种方式实时性是非常好的,但实际上数据请求的时候发送的是TCP协议的数据,里面会添加一些寻址的数据,也许只有1%是自己的数据,造成了实时性高,但是效率低下的缺点
而另一种方式是构建一个缓存区,然后将数据装到里面,数据满的时候整体去发,它最大的好处是传输效率高一些,但是实时性差一点
tcp_nodelay是实时性的写法和tcp_nopush是设置缓存区的写法
三个指令都打开的写法:
经过刚才的分析,"tcp_nopush"和”tcp_nodelay“看起来是"互斥的",那 么为什么要将这两个值都打开,这个大家需要知道的是在linux2.5.9以后 的版本中两者是可以兼容的,三个指令都开启的好处是,sendfile可以 开启高效的文件传输模式,tcp_nopush开启可以确保在发送到客户端之 前数据包已经充分“填满”, 这大大减少了网络开销,并加快了文件发送 的速度。 然后,当它到达最后一个可能因为没有“填满”而暂停的数据包 时,Nginx会忽略tcp_nopush参数, 然后,tcp_nodelay强制套接字发 送数据。由此可知,TCP_NOPUSH可以与TCP_NODELAY一起设置,它 比单独配置TCP_NODELAY具有更强的性能。所以我们可以使用如下配 置来优化Nginx静态资源的处理
sendfile on;
tcp_nopush on;
tcp_nodelay on;
- 上一篇: 如何在Nginx与Apache设置静态资源缓存教程
- 下一篇: 「每天一道面试题」Nginx使用场景
猜你喜欢
- 2024-09-27 Nginx之6大千世界 - (FastCGI) nginx dav
- 2024-09-27 nginx的基础应用 nginx的典型应用场景
- 2024-09-27 测试开发——Nginx大型网络框架中的应用(反向代理、动静分离)
- 2024-09-27 webserver神器 nginx安装 webservice nginx
- 2024-09-27 Nginx常用配置 nginx基本配置与参数说明
- 2024-09-27 「每天一道面试题」Nginx使用场景
- 2024-09-27 如何在Nginx与Apache设置静态资源缓存教程
- 2024-09-27 Nginx静态资源优化配置之sendfile
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)