Nginx从入门到入坟(五)- Nginx静态资源优化配置语法

原文地址:https://program-park.github.io/2022/04/19/nginx_6/

  Nginx 对静态资源如何进行优化配置。这里从三个属性配置进行优化:

  • sendfile on
  • tcp_nopush on
  • tcp_nodeplay on

  sendfile: 用来开启高效的文件传输模式。

语法sendfile on|off
默认值sendfile off
位置http、server、location…
  请求静态资源的过程:客户端通过网络接口向服务端发送请求,操作系统将这些客户端的请求传递给服务器端应用程序,服务器端应用程序会处理这些请求,请求处理完成以后,操作系统还需要将处理得到的结果通过网络适配器传递回去。
  如:
server {
	listen 80;
	server_name localhost;
	location / {
		root html;
		index index.html;
	}
}
在html目录下有一个welcome.html页面,访问地址
http://localhost/welcome.html

在这里插入图片描述
在这里插入图片描述
  tcp_nopush: 该指令必须在 sendfile 打开的状态下才会生效,主要是用来提升网络包的传输 “效率”。

语法tcp_nopush on|off
默认值tcp_nopush off
位置http、server、location

  tcp_nodelay: 该指令必须在 keep-alive 连接开启的情况下才生效,来提高网络包传输的 “实时性”。

语法tcp_nodelay on|off
默认值tcp_nodelay on
位置http、server、location

在这里插入图片描述
  经过刚才的分析,“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;

参考文献

  【1】https://www.bilibili.com/video/BV1ov41187bq?p=47

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大Null

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值