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

关注mikechen十余年BAT架构经验倾囊相授!

大家好,我是mikechen睿哥。


Nginx是大型架构的必备技能,下面我就重点来详解Nginx动静分离@mikechen

Nginx动静分离

动静分离,顾名思义,就是将网站的动态内容、和静态内容分开处理、和部署。

如下图所示:

静态内容:指不依赖后端程序处理、不经常变化的文件。

比如:HTML、CSS、JavaScript、图片(jpg、png等)、视频。。。等。

动态内容:需要后端应用程序(如PHP、Java、Python等)处理后生成的内容,如API接口、动态网页…等。

将静态资源的请求分发给专门的服务器或 Nginx 直接处理,可以释放后端应用服务器的资源,使其专注于处理动态逻辑。


Nginx动静分离原理

Nginx动静分离原理,如下图所示:

大致流程,如下:

首先,请求分类转发。

Nginx根据请求的URL路径或文件后缀名判断请求类型,静态资源请求直接由Nginx返回,动态资源请求通过反向代理转发到后端服务器。

其次,缓存机制。

Nginx可以缓存静态资源,减少对后端服务器的请求次数,提升响应速度。

然后,浏览器缓存控制。

通过设置Expires、Cache-Control等HTTP头,控制浏览器缓存,减少重复请求。

最后,资源专职处理。

Tomcat专注处理动态请求,Nginx专注处理静态资源,提高资源利用率和性能

http {    upstream backend_server {        server 127.0.0.1:8080;# 后端动态资源服务器地址和端口}     server {        listen 80;        server_name example.com; # 静态资源处理        location /static/{alias/usr/local/mystatic/;# 静态资源路径            autoindex on;# 可选,目录浏览            expires 30d;# 设置浏览器缓存30天} # 静态资源匹配文件扩展名        location ~* \.(jpg|jpeg|png|gif|css|js|ico|html)nbsp;{            root /usr/local/mystatic/;            expires 30d;} # 动态资源处理,转发给后端服务器        location /{            proxy_pass http://backend_server;            proxy_set_header Host $host;            proxy_set_header X-Real-IP $remote_addr;            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}}

location /static/ ,用于匹配静态资源请求,直接从本地静态目录返回。

动态请求,通过 proxy_pass 转发给后端应用服务器。

以上

本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。

相关文章

NGINX 性能优化与高级配置:榨干服务器潜能,打造极致体验

NGINX 以其卓越的性能和高并发处理能力闻名于世,但默认配置往往只是一个普适性的起点。要想真正发挥 NGINX 的潜能,满足日益增长的业务需求,深入理解其配置并进行精细化调优至关重要。这就像拥有一辆...

高并发场景下,Nginx性能如何提升10倍?

大家好,我是mikechen。在高并发场景,Nginx 是流量入口的第一道防线,如果想拦截亿级流量,需要Nginx合理调优才能应对@mikechen。本文作者:陈睿|mikechen文章来源:mike...

Nginx缓存最全详解:如何提高10倍性能!

关注△mikechen△,十余年BAT架构经验倾囊相授!大家好,我是mikechen睿哥。Nginx是大型架构的必备中间件,下面我就重点来详解Nginx缓存核心技术@mikechenNginx缓存Ng...

LVS、Nginx压测与性能调优(超详细)

LVS和Nginx作为一个常用的负载均衡软件,充当集群流量入口的角色,需要承载的业务流量一般都比较大,这个时候对LVS/Nginx节点进行一些参数调优,对于发挥它们的性能有很大的帮助。一、 可能会负载...

Nginx在高并发下的性能优化点!有这篇就够了

20大进阶架构专题每日送达前面几周,讲过Nginx的日志配置:Nginx | 超详细!Nginx 日志配置实践,然后也讲了Nginx的进程模型,底层原理等:Nginx为什么快到根本停不下来?没看过的可...

高并发场景下,如何提升Nginx并发性能?

Nginx是大型架构的必备中间件,也是高并发的核心组件,下面我就重点详解5大Nginx高并发优化方案@mikechen本文作者:mikechen文章来源:mikechen.ccNginx高并发Ngin...