Nginx是大型架构提升性能的重要技术,下面我重点详解Nginx动静分离@mikechen
Nginx动静分离
动静分离:是网站架构、和部署中的一种性能优化策略。
动静分离,核心思想是:将网站的动态内容、和静态资源分开存储、分开处理、分开传输。
目的只有一个:就是提升访问速度、降低服务器压力、提高并发能力。
Nginx动静分离原理
动静分离的本质:是根据请求类型,来进行流量分发。
比如:静态资源如图片、CSS、JS…等,走静态路径。
动态请求,比如: PHP/Node/后端 API…,将流量路由到后端服务器来处理。
整体流程,如下图所示:
用户浏览器 │ ├── 静态资源请求(CSS/JS/图片) → CDN/静态服务器 │ └── 动态数据请求(接口/页面渲染) → 应用服务器(Tomcat、PHP-FPM)
静态资源(CSS、JS、图片、视频等),存放在独立的静态服务器、或 CDN 上。
动态请求由后端应用服务器处理(如 Nginx + Tomcat、Nginx + PHP-FPM)。
在同一台服务器上,通过 Nginx 配置,将静态文件直接返回,不经过后端,动态请求再转发到应用服务器。
server { listen 80; server_name example.com; # 静态资源 location /static/ { root /var/www/html; expires 30d; # 浏览器缓存 } # 动态请求 location / { proxy_pass http://127.0.0.1:8080; } }
通过这种方式,Nginx 动静分离,将静态资源交由 CDN 或独立静态服务,同时结合合适的缓存、与安全配置,可获得最佳效果。