nginx 静态资源优化配置

一.优化文件传输方式

sendfile        on;
tcp_nopush     on;
tcp_nodelay     on;

1.sendfile

是否开启高效的文件传输模式

off : 使用传统文件传输协议:read+write,造成4次上下文切换和4次数据拷贝

on:使用零拷贝技术:sendfile ,造成2次上下文切换和2次数据拷贝

2.tcp_nopush

必须在sendfile打开的状态下才会生效,主要是用来提升网络包的传输效率

3. tcp_nodelay

必须在keep-alive连接开启的情况下才生效,来提高网络包传输的实时性

sendfile开启高效的文件传输模式,tcp_nopush开启确保在发送到客户端之前数据包已经充分填满,减少了网络开销,并加快了文件发送的速度。然后,当它到达最后一个可能因为没有填满而暂停的数据包时,Nginx会忽略tcp_nopush参数,然后tcp_nodelay强制套接字发送数据

二.静态资源压缩

gzip on; #开启gzip功能
gzip_types *; #压缩源文件类型,根据具体的访问资源类型设定
gzip_comp_level 6; #gzip压缩级别
gzip_min_length 1024; #进行压缩响应页面的最小长度,contentlength
gzip_buffers 4 16K; #缓存空间大小
gzip_http_version 1.1; #指定压缩响应所需要的最低HTTP请求版本
gzip_vary on; #往头信息中添加压缩标识
gzip_disable "MSIE [1-6]\."; #对IE6以下的版本都不进行压缩
gzip_proxied off; #nginx作为反向代理压缩服务端返回数据的条件
gzip_static on;

1.gzip_comp_level

用于设置Gzip压缩程度,级别从1-9,1表示要是程度最低,要是效率最高,9刚好相反,压缩程度最高,但是效率最低最费时间

2.gzip_min_length

针对传输数据的大小,选择性地开启和关闭Gzip功能。Gzip压缩功能对大数据的压缩效果明显,但是如果要压缩的数据比较小,可能出现越压缩数据量越大的情况

三.Gzip和sendfile共存问题

开启sendfile以后,在读取磁盘上的静态资源文件的时候,可以不经过用户进程将静态文件通过网络设备发送出去,但是Gzip要想对资源压缩,是需要经过用户进程进行操作的。可使用ngx_http_gzip_static_module模块的gzip_static指令来解决

1.添加模块到Nginx的实现步骤

(1)查询Nginx的配置参数

nginx -V

在这里插入图片描述

(2)将nginx安装目录下sbin目录中的nginx二进制文件进行更名

cd /usr/local/nginx/sbin
mv nginx nginxold

(3) 进入Nginx的安装目录
在这里插入图片描述

(4)执行make clean清空之前编译的内容

make clean

(5)使用configure来配置参数,把之前的配置参数一并添加

./configure --with-http_gzip_static_module

(6)使用make命令进行编译

make

(7) 将objs目录下的nginx二进制执行文件移动到nginx安装目录下的sbin目录中

mv objs/nginx /usr/local/nginx/sbin

(8)执行更新命令

make upgrade

四.生产配置

在这里插入图片描述
http块中添加
在这里插入图片描述

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

但行益事莫问前程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值