大家好,欢迎来到IT知识分享网。
前段时间,搞Nginx+IIS的负载均衡,想了解的朋友,可以看这篇文章:《nginx 和 IIS 实现负载均衡》,然后也就顺便研究了Nginx + IIS 实现动静分离。所以,一起总结出来,与大家共同探讨。
什么是动静分离
所谓系统动静分离,其实,就是将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用服务器的请求。后台应用服务器只负责动态数据请求。
优势:
1、分担负载,减轻web服务器的压力,适用于大负载。
2、静态资源放置cdn,同时还可以通过配置缓存到客户浏览器中,这样极大减轻web服务器的压力。
劣势:
1、网络环境不佳时,ajax回应很慢,导致页面出现空白,出错处理会不好看。
2、不利于网站SEO(搜索引擎优化) ,
3、增加了开发复杂度。
实现方案
动静分离最简单的实现方案就是:Nginx服务器作为代理服务器,根据匹配规,将动态的数据请求转发给tomcat,将静态资源请求直接返回本地静态资源文件,从而达到动静分离的目的。
实现步骤
1、首先配置Nginx,打开 nginx.conf 配置文件的,在location / {} 上方添加 , nginx 的其他配置,请参考前一篇文章《nginx 和 IIS 实现负载均衡》。具体配置如下:
#静态资源缓存设置 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 实现动静分离的最简单的方案。欢迎大家交流,大家私信我(章为忠学架构)。
推荐阅读:
Nginx总结(七)Nginx服务器的日志管理及配置
Nginx总结(五)如何配置nginx和tomcat实现反向代理
Nginx总结(六)nginx实现负载均衡
Nginx总结(四)基于域名的虚拟主机配置
Nginx总结(一)一步一步教你如何安装Nginx
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/52600.html