1. 什么是动静分离?
通过nginx将动态请求和静态请求分开,可以理解为nginx处理静态页面,Tomcat处理动态页面;而不是物理分隔动态页面和静态页面
client 动态请求 <--> nginx <--> tomcat <--> db
client 静态请求 <--> nginx <--> 静态资源服务器(如 html,css,image等)
2. 动静分离的实现(大致分为两种)
(1)纯粹的静态文件独立成单独的域名,放在独立的静态服务器中(目前主流的推崇方案)
(2)动态和静态文件混合在一起,通过nginx分离开
具体地:
通过location指定不同的后缀名实现不同的请求转发(就像之前的例子一样)通过设置 expires 参数,指定浏览器缓存过期时间
举例:设置 expires = 3d,表示浏览器缓存的过期时间为3天,在3天内访问这个URL,发送请求会比对服务器上该文件最后的更新时间是否发生了变化,如果没发生变化,就不会从服务器抓取,返回状态码304(产生缓存效果);如果文件更新时间不同,则会去服务器下载,返回200状态码
缺点:此种方法不适合经常变动的资源
准备工作
在系统中准备静态资源&#