当前位置:首页 > 技术文章 > 正文内容

Nginx总结(九) 实现系统的动静分离

arlanguage5个月前 (12-15)技术文章35

前段时间,搞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

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/189.html

标签: nginx多目录
分享给朋友:

“Nginx总结(九) 实现系统的动静分离” 的相关文章

16《Nginx 入门教程》Nginx防盗链配置

百度百科的解释如下:盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率。受益者不提供资源或提供很少的资源,而真正的服务提供商却得不到任何的收益。盗链在如今的互联网世界无处不在...

Nginx笔记

内容介绍 1、nginx基本概念。(1) nginx是什么,能做什么事情(2) 反向代理。(3) 负载均衡。(4) 动静分离2、nginx 安装、常用命令和配置文件(1)在liunx系统中安装nginx.(2) nginx常用命令。(3) nginx 配置文件。3、nginx 配置实例 1-反向代理...

nginx开启ssl并把http重定向到https的两种方式

1 简介Nginx是一个非常强大和流行的高性能Web服务器。本文讲解Nginx如何整合https并将http重定向到https。https相关文章如下:(1)Springboot整合https原来这么简单(2)HTTPS之密钥知识与密钥工具Keytool和Keystore-Explorer(3)Sp...

Nginx配置七层负载均衡

Nginx 一般用于七层负载均衡,其吞吐量有一定限制。为了提升系统整体吞吐量,会在 DNS 与 Nginx 之间引入接入层,比如使用LVS(软负载均衡器)、F5(硬负载均衡器)做四层负载均衡。整体的请求流转如下图所示,即首先 DNS 解析到 LVS/F5,然后 LVS/F5 转发给 Nginx,再由...

为何说捣腾 Nginx 少不了 Nginx-ui ?还自带 GPT 助手?

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!什么是 Nginx UINginx UI 是一个基于 Web 的管理界面,旨在简化 Nginx 服务器的管理和配置。Yet another N...

高端Linux 脚本很有用,赶紧学起来!

Linux 脚本?准确的说叫 Linux Shell 脚本,Shell 脚本是一种被设计用来运行命令行解释器,他是 Linux 系统的一大特色之一。命令行是 Linux 系统中一种非常重要的交互方式,而它的实现基于 Linux 内核和 Shell 程序,为用户提供了强大和灵活的操作方式。使用 Lin...