Nginx是大型架构提升性能的重要技术,下面我重点详解Nginx动静分离@mikechen
Nginx动静分离
什么是动静分离? 动静分离是一种将动态请求、和静态资源分开处理的Web架构优化技术。
比如:将静态资源(如HTML、CSS、JavaScript、图片等),直接由Nginx等静态服务器处理,将动态请求转发给应用服务器。
动静分离的主要优势:提高服务器响应速度,更好的资源利用,提升网站整体性能和用户体验。
Nginx动静分离架构
整体架构,如下图所示:
server { listen 80; server_name mikechen.cc; # 静态资源匹配规则 location /static/ { root /var/www/html; expires 30d; # 缓存30天 access_log off; # 减少磁盘IO } # 动态请求转发 location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }
假设你访问:
https://mikechen.cc/static/js/main.js → 静态文件
https://mikechen.cc/user/info?id=123 → 动态接口
首先,开始流程。
浏览器发起请求 → 请求到达 Nginx,Nginx 根据 location 匹配规则。
其次,静态文件读取
/static/ → 本地磁盘路径 /var/www/html/static/
命中静态目录 → 直接返回给用户(可加缓存)。
静态资源可开启 expires 缓存,静态资源可走 CDN 减轻源站压力
然后,动态请求转发
请求转发到后端(Tomcat、PHP-FPM。。。等)
后端生成响应 → 返回给 Nginx → Nginx 转发给浏览器。
通过这种清晰的配置,Nginx就能够高效地将请求分流,实现了动静分离的优化效果。