上QQ阅读APP看书,第一时间看更新
4.4.3 动静分离
在介绍动静分离之前,需先了解动态和静态。所谓动态,指的是需更新编译处理的资源,如JSP/PHP。相对由服务端编程语言实现的页面,这种页面需要在服务端动态处理。所谓静态,指的是不需要更新编译的资源,如CSS/JSS/HTML等。
Nginx实现动静分离:在利用反向代理的过程中,Nginx会判断是否是静态的资源,如果是,则直接从Nginx发布的路径去读取,而不需要从后端服务器获取。
动静分离优势:充分利用服务器资源,减少不必要的请求,减少后端服务器的压力,快速提高页面加载速度。
Nginx实现动静分离的方法如代清单码4-6所示。
代码清单4-6 Nginx实现动静分离
location / { root /root; #定义服务器的默认网站根目录位置 index index.html index.htm; #定义首页索引文件的名称 } # 定义错误提示页面 error_page 500 502 503 504 /50x.html; location = /50x.html { root /root; } #静态文件,Nginx自己处理 location ~ ^/(images|javascript|js|css|flash|media|static)/ { root /zachary/shop; #过期5天 expires 5d; }
当浏览器请求获取静态资源时,若浏览器请求的响应状态码为304,其表示从缓存中获取静态资源,而Nginx可以对静态资源进行缓存,则当下次浏览器再请求静态资源时,如资源未变更,后续请求会从浏览器缓存中读取加载。
注意
浏览器获取静态资源不请求后端服务器,从而达到动静分离的效果。