前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx总结(九) 实现动静分离,极简配置!

Nginx总结(九) 实现动静分离,极简配置!

作者头像
架构师精进
发布2020-06-23 11:43:14
1.2K0
发布2020-06-23 11:43:14
举报
文章被收录于专栏:公众号文章公众号文章
前段时间,总结了Nginx的系列文章,Nginx的负载均衡等等,想了解的朋友,可以看这篇文章:《nginx 和 IIS 实现负载均衡》,然而,还是有很多人问我动静分离的问题,所以,就再来说一说 Nginx 实现动静分离。一起总结,相互学习,与大家共同探讨。

什么是动静分离

所谓系统动静分离,其实,就是将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用服务器的请求。后台应用服务器只负责动态数据请求。

优势:

1、分担负载,减轻web服务器的压力,适用于大负载。

2、静态资源放置cdn,同时还可以通过配置缓存到客户浏览器中,这样极大减轻web服务器的压力。

劣势:

1、网络环境不佳时,ajax回应很慢,导致页面出现空白,出错处理会不好看。

2、不利于网站SEO(搜索引擎优化) ,

3、增加了开发复杂度。

实现方案

动静分离最简单的实现方案就是:Nginx服务器作为代理服务器,根据匹配规,将动态的数据请求转发给tomcat,将静态资源请求直接返回本地静态资源文件,从而达到动静分离的目的。

实现步骤

1、首先配置Nginx,打开 nginx.conf 配置文件的,在location / {} 上方添加 , nginx 的其他配置,请参考前一篇文章《nginx 和 IIS 实现负载均衡》。具体配置如下:

代码语言:javascript
复制
  #静态资源缓存设置
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$  {     
    root static;    #static文件夹在Nginx目录下没有,需创建,和conf文件夹同级  
    expires      30d;  
}          
location ~ .*\.(js|css)?$ {    
    root static;  
    expires      30d;    
}

注意:

1、static文件夹在Nginx目录下没有,需创建,和conf文件夹同级。也可以自定义。

2、静态资源缓存设置很简单就是通过url 的正则匹配。

效果如下:

2. 在Nginx 下 创建 static 目录,将图片,js, css 等文件 拷贝到该目录下

注意:最好,网站的原来静态文件目录最好还是保留,我的测试网站是asp.net mvc 删掉相关目录,网站启动会提示找不到相关目录,

3、测试动静分离

启动nginx服务器和tomcat服务器,在浏览器访问10089端口,查看firefox浏览器的开发者工具,如下:

可以发现,静态资源都是直接从磁盘获取,响应头都有Cache-Control字段,静态资源的请求时间均为0ms。

最后

上述内容只是nginx 实现动静分离的最简单的方案。欢迎大家交流,大家私信我(架构)。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师精进 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是动静分离
  • 实现方案
  • 最后
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档