一般来说,静态资源是指JavaScript、CSS、Img等文件,动态资源则是通过PHP、Java等后端语言运行一系列的代码逻辑来获取的。
如果是静态资源的请求,就直接让nginx在静态资源目录下面读取,然后返回给客户端
如果是动态资源的请求,则nginx利用反向代理把请求转发给后端应用去处理,然后后端应用将结果返回给nginx,nginx再返回给客户端
在使用前后端分离之后,可以很大程度的提升静态资源的访问速度,同时减轻后端应用的处理压力。拿PHP之Laravel框架来说,简单的获取一个静态文件,就需要初始化框架代码,这个过程也比较耗时,性价比是很低的
# 动态内容
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可以获取更快的静态资源加载速度
专题阅读
- 1. Nginx的优点
- 2. Nginx的安装与开机自启
- 3. Nginx目录和配置语法
- 4. Nginx模块
- 5. Nginx静态资源处理
- 6. Nginx浏览器缓存原理
- 7. Nginx资源的跨域访问
- 8. Nginx资源的防盗链
- 9. Nginx代理
- 10. Nginx负载均衡
- 11. Nginx缓存
- 12. Nginx动静分离
- 13. Nginx Rewrite
- 14. Nginx Secure Link
- 15. Nginx Geo
- 16. Nginx HTTPS服务
- 17. Nginx与Lua开发
- 18. Nginx与Lua灰度发布
- 19. Nginx常见错误
- 20. Nginx性能优化
- 21. Nginx安全管理