Nginx如何实现动静分离?

Nginx是大型架构提升性能的重要技术,下面我重点详解Nginx动静分离@mikechen

Nginx动静分离

动静分离:是网站架构、和部署中的一种性能优化策略。

动静分离,核心思想是:将网站的动态内容、和静态资源分开存储、分开处理、分开传输。

Nginx如何实现动静分离?-mikechen

目的只有一个:就是提升访问速度、降低服务器压力、提高并发能力。

 

Nginx动静分离原理

动静分离的本质:是根据请求类型,来进行流量分发。

比如:静态资源如图片、CSS、JS…等,走静态路径。

动态请求,比如: PHP/Node/后端 API…,将流量路由到后端服务器来处理。

整体流程,如下图所示:

Nginx如何实现动静分离?-mikechen

用户浏览器
   │
   ├── 静态资源请求(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 或独立静态服务,同时结合合适的缓存、与安全配置,可获得最佳效果。

评论交流
    说说你的看法