Nginx动静分离详解(原理+配置+实战)

Nginx动静分离是一种常见的 Web 服务优化技术,Nginx动静分离可以更好的提升性能@mikechen

文章来源:mikechen.cc

Nginx动静分离

动静分离,顾名思义,就是将 Web 应用中的动态资源、和静态资源分开处理。

如下图所示:

Nginx动静分离详解(原理+配置+实战)

静态资源

指内容不常常变化的文件,如 HTML、CSS、JavaScript 文件、图片、视频、字体文件等。

这些文件可以直接由 Web 服务器(如 Nginx)直接发送给客户端,无需经过应用服务器处理。

将大量的静态资源请求从应用服务器中剥离出来,可以显著降低应用服务器的负载,使其能够专注于处理动态业务逻辑。

动态资源

指内容常常变化,需要根据用户请求或后端逻辑实时生成的文件,如 JSP、PHP、ASP、Python 脚本等。

这些请求需要转发到应用服务器(如 Tomcat、PHP-FPM、UWSGI 等)进行处理,生成最终的响应数据。

Nginx动静分离原理

Nginx 实现动静分离的核心原理:是利用其强劲的 location 匹配规则。

通过配置不同的 location 块来匹配不同类型的请求,然后将静态资源的请求直接由 Nginx 处理,而将动态资源的请求转发给后端的应用服务器。

Nginx动静分离详解(原理+配置+实战)

列如:

server {    listen 80;    server_name example.com; # 动态请求交给后端应用服务器处理    location /{        proxy_pass http://your_app_server_ip:port;        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;} # 静态请求由 Nginx 自己处理# 使用正则表达式匹配常见的静态文件扩展名    location ~* .(jpg|jpeg|png|gif|ico|css|js|eot|svg|ttf|woff|woff2)$ {        root /path/to/static/files;# 静态文件存放的根目录        expires 30d;# 设置静态文件的缓存时间,提高二次访问速度}}

整体流程,如下:

请求分流:Nginx 通过 location 配置,判断请求路径是否为静态资源。

location /:这是一个通用匹配,它会匹配所有没有被更准确的 location 块匹配到的请求。

静态资源处理:直接由 Nginx 读取本地磁盘文件、或缓存返回给用户。

动态资源转发:通过 proxy_passfastcgi_pass 将请求转发到后端应用服务器。

文章来源:mikechen.cc

© 版权声明

相关文章

2 条评论

您必须登录才能参与评论!
立即登录
  • 头像
    织梦者 读者

    优秀💪

    无记录
  • 头像
    住在古灵阁的活点地图 投稿者

    收藏了,感谢分享

    无记录