Nginx ·

Nginx配置静态资源分离

在前端项目的优化中静态资源分离是一个比较有效的方案,原因在于如果大量的静态资源请求到业务服务器,则会占用业务服务器大量的并发资源来处理,对于后端服务的压力还是比较大的。

于是我们可以在这些请求还未到达业务服务器就先行处理返回,根据这个思路我们开始实战做一下。

  • 首先需要做得是在部署Nginx的机器上的nginx目录创建static目录
  • 然后将项目中所有的静态资源全部拷贝到该目录下,将项目中的静态资源进行移除
  • 修改nginx.conf配置

新增一条location规则即可

location ~ .*\.(png|ico|gif|jpeg|jpgmbp|txt|js|css|html|htm){

            root static;
            expires 7d;
        }

然后重新启动nginx服务和业务服务器,我们发现原有的样式、js、图片等依旧有效,但是业务服务器不会再出现日志请求了。

我们来解读一下新增的这条规则
location ~ .*\.(png|ico|gif|jpeg|jpgmbp|txt|js|css|html|htm)

  • ~标识匹配时区分大小写
  • .*代表人已字符都可以出现零次或多次,也就是说资源名称不限制
  • 小括号内标识的是所有静态资源的后缀即类型

至此动静分离基本介绍完成了,其实动静分离还有一个更好的方案是将静态资源全部上传到cdn服务去,或者新建一个域名进行nginx配置静态资源,增加浏览器并发量,加快请求速度

参与评论