一:什么是Nginx动静分离
通过 location 指定不同的后缀名实现不同的请求转发。通过 expires 参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求和流量。
具体 Expires 定义:是给一个资源设定一个过期时间,也就是说无需去服务端验证,直接通过浏览器自身确认是否过期即可,所以不会产生额外的流量。此种方法非常适合不经常变动的资源。(如果经常更新的文件,不建议使用 Expires 来缓存),我这里设置 3d,表示在这 3 天之内访问这个 URL,发送一个请求,比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码 304,如果有修改,则直接从服务器重新下载,返回状态码 200。
总结:nginx动静分离就是对不长更新的静态资源做缓存,减少服务器的压力
二:Nginx动静分离的几种形式
1:把静态资源单独拎出来,放在独立的服务器上,也是目前主流推崇的方案,可用作资源服务器(大型网站的选择)
2:通过nginx做请求过滤,缓存指定的静态资源请求, 也可以简单的理解成使用 Nginx处理静态页面,php或java处理动态页面
三:动静分离配置
对于中小型网站,采用第二种方式就完全够用,具体配置如下:
server {
....
location ~ \.php$ {
...
}
location /image/ {
expires 2h; #缓存2小时
root /home/image/;
autoindex on;
}
....
}