Nginx动静分离架构详解(图文全面总结)

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

Nginx动静分离

什么是动静分离? 动静分离是一种将动态请求、和静态资源分开处理的Web架构优化技术。

比如:将静态资源(如HTML、CSS、JavaScript、图片等),直接由Nginx等静态服务器处理,将动态请求转发给应用服务器。

Nginx动静分离架构详解(图文全面总结)-mikechen

动静分离的主要优势:提高服务器响应速度,更好的资源利用,提升网站整体性能和用户体验。

 

Nginx动静分离架构

整体架构,如下图所示:

Nginx动静分离架构详解(图文全面总结)-mikechen

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就能够高效地将请求分流,实现了动静分离的优化效果。

评论交流
    说说你的看法