Nginx动静分离架构详解(性能提升3倍的关键)
|
admin
2025年12月9日 11:45
本文热度 12
|
Nginx动静分离 ,是优化 Web 性能的常用且高效的架构模式。
它的核心思想是:将 动态资源和静态资源分开。
比如: JSP, PHP, ASP 等需要后端应用服务器处理的请求,和 静态资源分开。
比如: HTML, CSS, JavaScript 文件、图片、视频等不需要后端处理的资源,由不同的服务器或不同的处理机制来负责。
Nginx动静分类架构
- ┌────────────┐
- │用户浏览器│
- └──────┬─────┘
- │
- ▼
- ┌──────────────┐
- │Nginx│
- │(反向代理层)│
- ├──────────────┤
- │静态资源目录│→直接返回文件(HTML/CSS/JS/IMG)
- │动态代理模块│→转发到后端应用(Tomcat/Spring)
- └──────────────┘
- │
- ┌────────────────┐
- │后端应用服务器│
- └────────────────┘
静态资源统一由前端服务器处理:HTML、CSS、JavaScript、图片、视频等静态资源。
静态资源, 使用独立的域名(如 static.yourdomain.com),指向专门的 Nginx 静态服务器集群。
动态资源 使用主域名(如 www.yourdomain.com),指向 Nginx 反向代理集群,再由它们转发给应用服务器。
页面中的静态资源链接,全部使用 static.yourdomain.com 域名。
动态请求转发给应用服务器:如 Tomcat、Jetty、Express、Django 等处理动态请求。
- server {
- listen 80;
- server_name yourdomain.com;
-
- # 1. 静态资源处理
- # 匹配所有以 .jpg, .css, .js 等结尾的请求
- location ~* \.(gif|jpg|jpeg|png|css|js|ico|woff|woff2|ttf|eot|svg)$ {
- root /data/www/static;# 静态文件存放的绝对路径
- expires 30d;# 缓存 30 天
- access_log off;# 静态请求可关闭日志,进一步提升性能
- }
-
- # 2. 动态资源处理
- # 除上述静态后缀外的所有请求都转发给后端应用服务器
- location /{
- proxy_pass http://backend_server_cluster; # 转发到后端应用集群
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- # ... 其他反向代理配置
- }
- }
Nginx 通过代理/反向代理,将动态请求转发到后端应用集群。
阅读原文:https://mp.weixin.qq.com/s/eI5yWIfyGLlnTxZvivBdEg
该文章在 2025/12/9 11:45:08 编辑过