通常来讲,静态资源是指JavaScript、CSS、Img等文件,动态资源则是经过PHP、Java等后端语言运行一系列的代码逻辑来获取的。php
若是是静态资源的请求,就直接让nginx在静态资源目录下面读取,而后返回给客户端css
若是是动态资源的请求,则nginx利用反向代理把请求转发给后端应用去处理,而后后端应用将结果返回给nginx,nginx再返回给客户端html
在使用先后端分离以后,能够很大程度的提高静态资源的访问速度,同时减轻后端应用的处理压力。拿PHP之Laravel框架来讲,简单的获取一个静态文件,就须要初始化框架代码,这个过程也比较耗时,性价比是很低的nginx
# 动态内容 location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; } # 静态内容 location ~ \.(png|jpeg|jpg|js|css|woff|ttf)$ { expires 1h; }
固然,若是有条件的话,仍是建议将静态资源存放到七牛或阿里云OSS中,利用CDN能够获取更快的静态资源加载速度segmentfault