动态资源与静态资源的区别

微微的概括一下

  • 静态资源: 当用户多次访问这个资源,资源的源代码永远不会改变的资源。
  • 动态资源:当用户多次访问这个资源,资源的源代码可能会发送改变。

什么是动静分离

动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。

为什么要用动静分离

在我们的软件开发中,有些请求是需要后台处理的(如:.jsp,.do等等),有些请求是不需要经过后台处理的(如:css、html、jpg、js等等文件),这些不需要经过后台处理的文件称为静态文件,否则动态文件。因此我们后台处理忽略静态文件。这会有人又说那我后台忽略静态文件不就完了吗。当然这是可以的,但是这样后台的请求次数就明显增多了。在我们对资源的响应速度有要求的时候,我们应该使用这种动静分离的策略去解决。动静分离将网站静态资源(HTML,JavaScript,css,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用访问。这里我们将静态资源放到nginx中,动态资源转发到tomcat服务器中。因此,动态资源转发到tomcat服务器我们就使用到了前面讲到的反向代理了。

在nginx中的配置

  ###静态资源访问server {listen       80;server_name  static.itmayiedu.com;location /static/imgs {root D:/; #会直接匹配D:下的static/imgs目录的 D:/static/imgsindex  index.html index.htm;}}###动态资源访问server {listen       80;server_name  www.kingstone.com; // 去hosts文件中配置location / {proxy_pass http://127.0.0.1:8080;index  index.html index.htm;}}

tip

图片这种静态资源,再次访问的话,会出现304状态码。这不是一种错误,而是对客户端有缓存情况下服务端的一种响应。

不明觉厉的解释:

客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Modified Since ,这个时间就是缓存文件的 Last Modified 。因此,如果请求中包含 If Modified Since,就说明已经有缓存在客户端。服务端只要判断这个时间和当前请求的文件的修改时间就可以确定是返回 304 还是 200 。
对于静态文件,例如:CSS、图片,服务器会自动完成 Last
Modified 和 If Modified Since 的比较,完成缓存或者更新。但是对于动态页面,就是动态产生的页面,往往没有包含 Last Modified 信息,这样浏览器、网关等都不会做缓存,也就是在每次请求的时候都完成一个 200 的请求。
因此,对于动态页面做缓存加速,首先要在 Response 的
HTTP Header 中增加 Last Modified 定义,其次根据 Request 中的 If Modified Since 和被请求内容的更新时间来返回 200 或者 304 。虽然在返回
304 的时候已经做了一次数据库查询,但是可以避免接下来更多的数据库查询,并且没有返回页面内容而只是一个
HTTP Header,从而大大的降低带宽的消耗,对于用户的感觉也是提高

转载于:https://www.cnblogs.com/kingning/p/11071073.html

使用nginx+tomcat实现动静分离相关推荐

  1. Nginx自学手册(六)Nginx+Tomcat实现动静分离

    (一)简述 Nginx是一种轻量级,高性能,多进程的Web服务器,非常适合作为静态资源的服务器使用,而动态的访问操作可以使用稳定的Apache.Tomcat及IIS等来实现,这里就以Nginx作为代理 ...

  2. nginx+Tomcat实现动静分离架构

    最近新部署了一个项目jlj-cms-erp-web,要求使用nginx+Tomcat将静态页面和动态的请求分开处理,减轻Tomcat服务器的压力 在部署项目的这台机器上(192.168.1.110)并 ...

  3. [Nginx]nginx 配置实例-动静分离

    nginx 配置实例-动静分离 1.什么是动静分离 Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离.严格意义上说应该是动态请求跟静态请求分开,可 ...

  4. Nginx+Keepalived+Tomcat之动静分离的web集群

                 为小公司提供大概一天持续在100万/日之间访问的高性能.高可用.高并发访问及动静分离的web集群方案 Nginx+Keepalived            高可用.反向代理 ...

  5. Nginx配置实例-动静分离实例:搭建静态资源服务器

    场景 Nginx入门简介和反向代理.负载均衡.动静分离理解: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102790862 U ...

  6. Nginx(五):动静分离

    1.概念基础 Nginx动静分离简单来说就是把动态请求和静态请求分开,不能理解成只是单纯的把动态页面静态页面的物理分离.严格意义上说应该是动态请求跟静态请求的分开,可以理解成使用Nginx处理静态页面 ...

  7. Centos7 Apache结合tomcat实现动静分离

    Apache和tomcat为什么要做动静分离 Apache是普通服务器,本身只支持html即普通网页.不过可以通过插件支持php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过 ...

  8. Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化......

    干货!文章有点长,建议先收藏 引言 一.性能怪兽-Nginx概念深入浅出 二.Nginx环境搭建 三.Nginx反向代理-负载均衡 四.Nginx动静分离 五.Nginx资源压缩 六.Nginx缓冲区 ...

  9. Nginx配置实例-动静分离

    1.什么是动静分离 Nginx动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和 静态页面物理分离.严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx 处理静态 ...

最新文章

  1. [工具]更新音乐下载软件工具音乐下载网站
  2. Juqery让世界更美好--超级简单实用的(上、下)自动翻的最佳效果,有图为证!...
  3. Java学习笔记二:数据类型
  4. Spring注解编程基石(二)
  5. 前端项目里常见的十种报错及其解决办法
  6. Redis的安装与常用配置说明
  7. 一些知名的J2me优秀开源UI项目
  8. airtest运行脚本_airtest之脚本批量运行
  9. 《SQL Server 2008从入门到精通》--20180703
  10. 标注工具——yarn的学习笔记
  11. 手机APP应用如何从公网访问本地WEB应用
  12. 21天Jenkins打卡Day9-保留构建
  13. linux命令 bind,Linux bind命令
  14. 和孩子们一起学Python编程
  15. 古老的版本管理器---P4客户端配置流程,操作总结
  16. read 文件一个字节实际会发生多大的磁盘IO?
  17. 【图像修复】基于matlab GUI约束最小二乘方滤波图像复原【含Matlab源码 852期】
  18. ffmpeg 命令转为 avi,mp4,h264, yuv
  19. 新浪微博登陆页面html代码,新浪微博登陆页面 找到我的位置,选择编辑;
  20. 【产品分析】共享充电宝

热门文章

  1. CRM Order confirmation form布局
  2. Authentication和Authorization的区别
  3. 一个SAP加拿大实习生在当地观察到的美景
  4. Fedora CentOS Red Hat中让vim支持语法高亮设置
  5. iar烧录程序步骤_STM8入门以及程序编译、烧录、IAR使用方法(扫盲篇...
  6. linux的各种版本,各种版本Linux系统下载
  7. 共享可写节包含重定位_未经许可成都街头现共享电动单车?哈啰出行:只是测试...
  8. python链接mysql系统结构设计_MySQLpython交互
  9. Java程序在命令行的编译运行
  10. java实现可视化报表_如何在Power BI中记录报表可视化?