Nginx动静分离是大型架构的必备技能,下面我重点详解Nginx动静分离技术@mikechen
Nginx动静分离
动静分离:是一种将动态请求、和静态请求,分开处理的Web架构优化策略。
Nginx动静分离,就是将网站的静态资源(如HTML、CSS、JavaScript、图片等)。
和动态内容(如PHP、Python等动态生成的页面),分别由不同的服务器或服务处理。
Nginx动静分离原理
Nginx通过配置不同的location、和upstream,可以轻松实现动静分离。
如果URL匹配到预设的静态资源规则(例如.html
, .css
, .js
, .jpg
, .png
等后缀),Nginx会直接从本地文件系统、或缓存中返回这些静态文件。
如果URL匹配到动态资源规则(例如.php
, .jsp
, /api/
等路径),Nginx会将请求转发给后端的应用服务器处理。
server { listen 80; server_name example.com; # 静态资源处理 location ~* \.(jpg|jpeg|png|gif|css|js)$ { root /data/static/; expires 30d; # 设置浏览器缓存 } # 动态请求转发 location / { proxy_pass http://backend_server; } }
匹配静态资源:通过正则表达式或文件后缀(如.jpg、.css、.js)指定静态资源的路径,直接由Nginx提供服务。
匹配动态资源:通过URL特征(如/api/或.php)将请求转发给后端服务器。