缓存服务器

面向站长和网站管理员的Web缓存加速指南

自闭症网瘾萝莉.ら 提交于 2019-12-06 13:36:40
原文(英文)地址: http://www.mnot.net/cache_docs/ 版权声明: 署名-非商业性使用-禁止演绎 2.0 这是一篇知识性的文档,主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中。为了简要起见,某些实现方面的细节被简化或省略了。如果你更关心细节实现则完全不必耐心看完本文,后面参考文档和更多深入阅读部分可能是你更需要的内容。 什么是Web缓存,为什么要使用它? 缓存的类型: 浏览器缓存; 代理服务器缓存; Web缓存无害吗?为什么要鼓励缓存? Web缓存如何工作: 如何控制(控制不)缓存: HTML Meta标签 vs. HTTP头信息; Pragma HTTP头信息(为什么不起作用); 使用Expires(过期时间)HTTP头信息控制保鲜期; Cache-Control(缓存控制) HTTP头信息; 校验参数和校验; 创建利于缓存网站的窍门; 编写利于缓存的脚本; 常见问题解答; 缓存机制的实现:Web服务器端配置; 缓存机制的实现:服务器端脚本; 参考文档和深入阅读; 关于本文档; 什么是Web缓存,为什么要使用它? Web缓存位于Web服务器之间(1个或多个,内容源服务器)和客户端之间(1个或多个):缓存会根据进来的请求保存输出内容的副本,例如html页面, 图片,文件(统称为副本),然后,当下一个请求来到的时候

微博研发实习阶段性总结及知识点整理

ⅰ亾dé卋堺 提交于 2019-12-06 13:04:21
阶段性总结及知识点整理 阶段性总结及知识点整理 数据回补 SSO单点登录 异构共存 Http Https协议 数据库容灾备份策略 流程 监控 调试 优化 Mcq消息队列 Cron Tasks定时任务 缓存与数据库 降级策略 版本控制 查看与分析网络请求 性能分析方法 数据回补 程序运行中由于未知原因造成的数据读出不一致的情形,在排查和确认代码和接口符合要求的情况下,通过手动代替定时任务调用一次相应方法,重新获取一遍数据,覆盖之前误读内容。 不能直接人为改动线上数据。 SSO单点登录 微博的Web应用服务器是无状态的,用户的登录状态信息由专门的服务器管理,sso sdk 为业务层提供了一套统一的标准的获得用户登录状态等信息的方法,SSOClient代码包对sdk作了进一步封装,供业务代码调用,屏蔽了底层实现,相应文件部署在php include path中。 业务层代码只负责调用SSOClient中的方法,不关心实现,体现了封装性。获得当前用户登录状态信息等通用方法被抽象出来在基类中实现,体现了继承性。 票据ticket作为凭证,当应用需要用户登录时,用户输入用户名密码到sso服务器进行验证并获取票据,并将票据转交应用程序,应用程序向sso服务器发送票据,验证其有效性,并完成登录。这样的设计避免了用户直接将用户名密码信息发送到应用服务器,一是安全性,二是低耦合。

nginx配置及性能调优

爱⌒轻易说出口 提交于 2019-12-06 12:38:08
https://www.toutiao.com/i6765746230141125132/?timestamp=1575450096&app=news_article&group_id=6765746230141125132&req_id=201912041701360100260760263C04643 2.4、配置默认主页 location / { index index.html index.htm; autoindex off; } 2.5、配置反向代理 location / { proxy_pass http://localhost:8888; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 2.6、URL 美化(省略 index.html 入口文件) location / { try_files $uri $uri/ /index.html; } 2.7、upstream 代码块 upstream 代码块位于 http 代码块内部。 upstream 用于对服务器集群进行负载均衡的配置。 upstream name { ip_hash; server

django-浏览器缓存

情到浓时终转凉″ 提交于 2019-12-06 11:40:48
## 强缓存 **不会向服务器发送请求,直接从缓存中读取资源** 1,Expires **缓存过期时间,用来指定资源到期的时间,是服务器端的具体的时间点** Expires=max-age + 请求时间 **Expires 是 HTTP/1 的产物,受限于本地时间,如 果修改了本地时间,可能会造成缓存失效** 2, Cache-Control 在HTTP/1.1中,Cache-Control主要用于控制网页缓存。比如当`Cache-Control:max-age=120 `代表请求创建时间后的120秒,缓存失效 横向对比 Expires VS Cache-Control #### 协商缓存 **协商缓存就是强制缓存失效后,浏览器携带缓存标识向服务器发起请求,由服务器根据缓存标识决定是否使用缓存的过程 1,Last-Modified和If-Modified-Since ​ 第一次访问时,服务器会返回 Last-Modified: Fri, 22 Jul 2016 01:47:00 GMT ​ 浏览器下次请求时 携带If-Modified-Since这个header , 该值为 Last-Modified ​ 服务器接收请求后,对比结果,若资源未发生改变,则返回304, 否则返回200并将新资源返回给浏览器 ​ 缺点:只能精确到秒,容易发生单秒内多次修改,检测不到 2,ETag和If

[网络] 在浏览器输入URL回车之后发生了什么

狂风中的少年 提交于 2019-12-06 10:59:02
目录 一 前言 二 URL解析 三 DNS域名解析 1 IP 地址 2 什么是域名解析 3 浏览器如何通过域名去查询 URL 对应的 IP 呢 4 小结 四 建立连接 1 TCP三次握手 2 SYN攻击 3 为什么不能用两次握手进行连接 五 发送HTTP请求 1 请求报文介绍   2 请求流程 六 服务器处理请求并返回 HTTP 报文 1. 服务器 2. MVC 后台处理阶段 3. HTTP响应报文 七 浏览器解析渲染页面 1 根据 HTML 解析 DOM 树 2 根据 CSS 解析生成 CSS 规则树 3 结合 DOM 树和 CSS 规则树,生成渲染树 4 根据渲染树计算每一个节点的信息(布局) 5 根据计算好的信息绘制页面 八 断开连接 1 四次挥手 2 为什么连接的时候是三次握手,关闭的时候却是四次握手? 3 为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态? 回到顶部 一 前言   打开浏览器从输入网址到网页呈现在大家面前,背后到底发生了什么?经历怎么样的一个过程?先给大家来张总体流程图,具体步骤请看下文分解!      从URL输入到页面展现   总体来说分为以下几个过程:   (1)URL 解析   (2)DNS 解析:将域名解析成 IP 地址   (3)TCP 连接:TCP 三次握手   (4)发送 HTTP 请求   (5

在浏览器输入URL回车之后发生了什么?(超详细版)

≡放荡痞女 提交于 2019-12-06 10:57:44
前言   这个问题已经是老生常谈了,更是经常被作为面试的压轴题出现,网上也有很多文章,但最近闲的无聊,然后就自己做了一篇笔记,感觉比之前理解更透彻了。   这篇笔记是我这两天看了数十篇文章总结出来的,所以相对全面一点,但由于我是做前端的,所以会比较重点分析浏览器渲染页面那一部分,至于其他部分我会罗列出关键词,感兴趣的可以自行查阅, 注意: 本文的步骤是建立在,请求的是一个简单的 HTTP 请求,没有 HTTPS、HTTP2、最简单的 DNS、没有代理、并且服务器没有任何问题的基础上,尽管这是不切实际的。 大致流程 URL 解析 DNS 查询 TCP 连接 处理请求 接受响应 渲染页面 一、URL 解析   地址解析:     首先判断你输入的是一个合法的 URL 还是一个待搜索的关键词,并且根据你输入的内容进行自动完成、字符编码等操作。   HSTS     由于安全隐患,会使用 HSTS 强制客户端使用 HTTPS 访问页面。详见: 你所不知道的 HSTS [1] 。   其他操作     浏览器还会进行一些额外的操作,比如安全检查、访问限制(之前国产浏览器限制 996.icu)。   检查缓存      二、DNS 查询   基本步骤        1. 浏览器缓存     浏览器会先检查是否在缓存中,没有则调用系统库函数进行查询。   2. 操作系统缓存    

nginx 的 proxy_cache 缓存配置

江枫思渺然 提交于 2019-12-06 10:53:01
开头:某个项目涉及到 视频切片下载到本地,然后提供服务给客户端。一个视频有多个文件,存储在本地路径下。当客户端请求的视频在本地没有就会回源,    回源拿到的视频文件再返回给客户端,同时在本地缓存一份,提供给下一个相同请求的用户。   可参考另一位大佬的讲解 https://blog.csdn.net/dengjiexian123/article/details/53386586/   本文结合项目关于缓存的使用情况来展开。 1. 配置 proxy_cache 模块   在 nginx.conf 文件添加 如下代码: proxy_cache_path /mnt/zxdfs/service/ottcache/cachevod levels=1:2 keys_zone=cachefile:100m inactive=180d max_size=148g limitedexpiredfiles=2 expiredtimeinterval=2300-1900 expired_percent=95;   代码说明:   proxy_cache_path 缓存文件路径   levels 设置缓存文件目录层次;levels=1:2 表示两级目录   keys_zone 设置缓存名字和共享内存大小.【在使用的地方要使用相同的变量名】   inactive 在指定时间内没人访问则被删除   max

SpringBoot学习(七)—— springboot快速整合Redis

。_饼干妹妹 提交于 2019-12-06 10:44:29
目录 Redis缓存 简介 引入redis缓存 代码实战 Redis缓存 @ 简介 redis是一个高性能的key-value数据库 优势 性能强,适合高度的读写操作(读的速度是110000次/s,写的速度是81000次/s )。 支持较为丰富的数据类型(如二进制的Strings, Lists, Hashes, Sets ,Ordered Sets) 一定的事物能力(要么执行成功要么完全不执行)。 劣势 内存数据库访问快,但也消耗硬件内存资源 注:redis的单线程仅仅是说在网络请求这一模块上用一个请求处理客户端的请求,但比如说持久化它就会重开一个线程/进程去进行处理。 引入redis缓存 点击链接 下载 redis 的 window 版,下载好后,放入你平时放软件的位置,解压出来即安装完成。(需要注意的是放入的文件目录,当前用户要是可读可写的权限,比如window下的C:\Program Files (x86),这个目录默认只有管理员权限才能读写,redis运行时要在该目录下实时写入日志文件的,若无权限读写,则会操作不成功) 解压出来的目录如下所示,因为是Windows端的,可双击exe文件开启客户端,服务端。 因为这是 springboot 整合 redis 系列,所以双击打开服务端即可,别关闭打开的 cmd 窗口。 在pom.xml中加入 <dependency>

终极手撕之架构大全:分布式+开源框架+微服务+性能优化,够不够?

谁都会走 提交于 2019-12-06 10:20:01
终极手撕之架构大全:分布式+开源框架+微服务+性能优化,够不够? 一只Tom猫4小时前 我要分享 之前有零零散散整理过一些专题给大家参考学习,这次一次性来个终极手撕之架构大全,包含开源框架、分布式、微服务、性能优化等四个大专题共17个小专题,全部一锅端,送给大家一起学习~ 注意:需要全部完整版架构大全答案的可以 【“点击我”免费领取】 《终极手撕之架构大全:分布式+开源框架+微服务+性能优化,够不够?》 01 开源框架(Spring +SpringMVC+Mybatis) 开源框架答案解析如下: 1.1 手撕开源框架之Spring 什么是 Spring 框架?Spring 框架有哪些主要模块? 使用 Spring 框架能带来哪些好处? 什么是控制反转(IOC) 请解释下 Spring 框架中的 IoC BeanFactory 和 和 ApplicationContext 有什么区别? Spring 有几种配置方式? 如何用基于 XML 配置的方式配置 Spring 如何用基于 Java 配置的方式配置 Spring 怎样用注解的方式配置 Spring 请解释 Spring Bean 的生命周期? Spring Bean 的作用域之间有什么区别? Spring 框架中的单例 Beans 是线程安全的么? 请举例说明如何在 Spring 中注入一个 Java Collection

squid反向代理

喜你入骨 提交于 2019-12-06 10:15:27
squid 反向代理配置,作为 web 服务器的前端内容缓存器。 本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性、安全性方面有很好的用途。作者在具体的实验环境下,利用 DNS 轮询和 Squid 反向代理技术,实现了网站的负载均衡,从而提高了网站的可用性和可靠性。 现在有许多大型的门户网站如 SINA 都采用 squid 反向代理技术来加速网站的访问速度,可将不同的 URL 请求分发到后台不同的 WEB 服务器上,同时互联网用户只能看到反向代理服务器的地址,加强了网站的访问安全。 反向代理的概念 反向代理服务器又称为 WEB 加速服务器,它位于 WEB 服务器的前端,充当 WEB 服务器的内容缓存器。其系统结构如图 1 图 1. 系统结构 系统结构 反向代理服务器是针对 WEB 服务器设置的,后台 WEB 服务器对互联网用户是透明的,用户只能看到反向代理服务器的地址,不清楚后台 WEB 服务器是如何组织架构的。当互联网用户请求 WEB 服务时, DNS 将请求的域名解析为反向代理服务器的 IP 地址,这样 URL 请求将被发送到反向代理服务器,由反向代理服务器负责处理用户的请求与应答、与后台 WEB 服务器交互。利用反向代理服务器减轻了后台 WEB 服务器的负载,提高了访问速度,同时避免了因用户直接与 WEB