缓存

2.2.1 Nginx高性能负载均衡器

北城以北 提交于 2020-03-09 08:43:07
目录 2.2.1.1 Nginx负载均衡 1、Nginx简介 1.1、Nginx作为负载均衡的8个原因 2、正向代理和反向代理 2.1、正向代理 2.2、反向代理(Reverse Proxy) 2.3、反向代理的作用 3、负载均衡原理 4、Nginx负载均衡的4种配置方案 1、轮询(Round Robin)【默认】 2、最少连接least_conn 3、IP地址哈希ip_hash 4、基于权重weight 2.2.1.2 代理缓存机制 1、Nginx缓存简介 1.1、缓存文件放在哪里? 1.2、如何指定哪些请求被缓存? 1.3、缓存的有效期是多久? 1.4、对于某些请求,是否可以不走缓存? 2.2.1.3 通过Lua拓展Nginx 2.2.1.4 高性能Nginx最新实践 2.2.1.1 Nginx负载均衡 1、Nginx简介 Nginx是一款轻量级的web( 静态 )服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD协议下发行,几乎可以在所有操作系统中运行。 Nginx做web服务器:比如Html解析、JS静态文件解析...... 由俄罗斯程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站、搜索引擎Rambler使用。 特点 : 占有内存少、高性能、高并发性 (最初用于解决C10K问题,现在可以C100K) 主要用epoll方式

性能测试入门解读

本小妞迷上赌 提交于 2020-03-09 07:59:39
背景介绍 项目越做越大,用户量和请数量可能随时发生井喷,如果等到系统崩溃时再补救,损失可就大了,所以得想个办法提前预防。 想要预防,就得知道系统的哪个环比较节薄弱,顶不住压力,还要对系统的承受能力有个全面的评估,心里有底,好提前预防,这种评估分析预防优化等一系列手段全被性能测试涵盖在内。 性能的指标 不同角色对性能的理解不尽相同,对于用户来说,操作流不流畅就是性能,对于研发人员来说,接口慢不慢和顶不顶得住并发就是性能,对于运维人员来说,网络带宽大小和资源占用高低就是性能。 那就必要统一性能指标了,首先,用户与研发人员都关注速度,实际上是接口的处理速度,再细一些是客户端发起请求到收到服务端返回的时间,那就把这个指标定为响应时间吧。 我们做一款产品最需要的就是用户,用户越多越好,但随着用户量地增加,同时发起操作的用户也越来越多,一时之间服务器可能要处理上万的请求,在这同一时刻处理的请求数就叫做并发数,不知何时起,处理过高并发的人成为了大家眼中的瑰宝,而并发数也成为了产品做大做强的标志,所以并发数也要列入性能的指标。 并发数只能代表同时请求的数量很多,但并没有赋予太多含义,与他人谈论时也无法让人整体把握系统的概况,所以需要将并发数进行变种以应对不同业务不同场景的描述,比如一天有多少人访问,一个小时能处理多少业务,每秒处理的事务数(TPS),每秒HTTP的请求数(HPS),每秒查询数

充分利用缓存来提高网站性能

冷暖自知 提交于 2020-03-09 07:12:12
[原文作者]: Omar [原文链接]: Making best use of cache for high performance website 使用URLs时要确保一致性 浏览器基于URL来缓存资源。当URL改变后,浏览器从源服务器获该资源的新的版本。查询字符串参数的改变也被视为URL的改变。例如,"/default.aspx" 被缓存到浏览器,如果你请求了"/default.aspx?123",浏览器将从服务器获取新的版本。对于这个新URL的响应,如果你返回的是正确的缓存报头,它仍然会被缓存。这样的话,再把查询字符串改成类似于"/default.aspx?456”,那么服务器将又返回一个新的版本。因此,当你想响应得到缓存时,就要确保你在各处使用了一致性的URL。在主页里,如果你请求了一个URL为"/welcome.gif"的文件,那么确保在其他页面里在请求该文件时也使用相同的URL。常见的一个错误是,有时会从URL中省略"www"子域。 www.pageflakes.com/default.aspx 与pageflakes.com/default.aspx是不同的,两者会被分别的缓存。 静态内容会被缓存得更久 静态内容可以被缓存得更久,例如一个月。 如果你正考虑应该只缓存几天,以便当你修改文件后,用户可以很快获取到新的版本,那么你错了。如果一个文件是通过设置过期报头

HTML api学习笔记

别来无恙 提交于 2020-03-09 06:43:47
HTML api学习 拖放 <!DOCTYPE HTML> <html> <head> <script> function allowDrop(ev) { ev.preventDefault(); //阻止原生事件 } function drag(ev) { ev.dataTransfer.setData("text", ev.target.id); //为拖放事件ev添加data } function drop(ev) { ev.preventDefault(); //阻止原生事件 var data = ev.dataTransfer.getData("text"); //从事件ev中读取data ev.target.appendChild(document.getElementById(data)); //利用data中的元素id构建标签完成拖放 } </script> </head> <body> <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div> //ondragover拖放结束 <img id="drag1" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">

http缓存提高性能

冷暖自知 提交于 2020-03-09 06:23:28
秋招也算是正式结束了,现在整理一下笔记,当作巩固一下知识,也希望这个对大家有帮助 http 缓存 和 cdn 缓存可以说是面试必问的问题,竟然是必问的问题,那就总结全面一点~ http缓存机制 缓存分为服务端侧(server side,比如 Nginx、Apache)和客户端侧(client side,比如 web browser)。 服务端缓存又分为 代理服务器缓存 和 反向代理服务器缓存(也叫网关缓存,比如 Nginx反向代理、Squid等),其实广泛使用的 CDN 也是一种服务端缓存,目的都是让用户的请求走”捷径“,并且都是缓存图片、文件等静态资源。 浏览器缓存控制机制有两种:HTML Meta标签 vs. HTTP头信息 <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 上述代码的作用是告诉浏览器当前页面不被缓存,每次访问都需要去服务器拉取。使用上很简单,但只有部分浏览器可以支持,而且所有缓存代理服务器都不支持,因为代理不解析HTML内容本身。 expires和cache control 都是 指明资源的缓存有效期,如果有效,就(200 from cache) expires : http1.0 ,服务器响应消息头字段,在响应http请求时告诉 浏览器在过期时间前可以直接从浏览器缓存存取数据(200 from cache)

http缓存提高性能

我只是一个虾纸丫 提交于 2020-03-09 06:21:27
http缓存机制 缓存分为服务端侧(server side,比如 Nginx、Apache)和客户端侧(client side,比如 web browser)。 服务端缓存又分为 代理服务器缓存 和 反向代理服务器缓存(也叫网关缓存,比如 Nginx反向代理、Squid等),其实广泛使用的 CDN 也是一种服务端缓存,目的都是让用户的请求走”捷径“,并且都是缓存图片、文件等静态资源。 浏览器缓存控制机制有两种:HTML Meta标签 vs. HTTP头信息 <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 上述代码的作用是告诉浏览器当前页面不被缓存,每次访问都需要去服务器拉取。使用上很简单,但只有部分浏览器可以支持,而且所有缓存代理服务器都不支持,因为代理不解析HTML内容本身。 expires和cache control 都是 指明资源的缓存有效期,如果有效,就(200 from cache) expires : http1.0,服务器响应消息头字段,在响应http请求时告诉 浏览器在过期时间前可以直接从浏览器缓存存取数据(200 from cache) ,而无需再次请求,现在默认浏览器都是默认使用http 1.1,所以它的作用基本忽略。 缺点:返回的到期时间是服务器端的时间,如果客户端和服务器的时间相差很大,误差就很大。所以,在http

大型网站性能优化的通用方法

给你一囗甜甜゛ 提交于 2020-03-09 06:18:47
1、HTML静态化 其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我们常访问的各个门户站点的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。 除了门户和信息发布类型的网站,对于交互性要求很高的社区类型网站来说,尽可能的静态化也是提高性能的必要手段,将社区内的帖子、文章进行实时的静态化,有更新的时候再重新静态化也是大量使用的策略,像Mop的大杂烩就是使用了这样的策略,网易社区等也是如此。 同时,html静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以考虑使用html静态化来实现,比如论坛中论坛的公用设置信息,这些信息目前的主流论坛都可以进行后台管理并且存储再数据库中,这些信息其实大量被前台程序调用,但是更新频率很小,可以考虑将这部分内容进行后台更新的时候进行静态化,这样避免了大量的数据库访问请求。 2、图片服务器分离 大家知道,对于Web服务器来说

大型网站性能优化的通用方法

让人想犯罪 __ 提交于 2020-03-09 06:18:06
1、HTML静态化 其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我们常访问的各个门户站点的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。 除了门户和信息发布类型的网站,对于交互性要求很高的社区类型网站来说,尽可能的静态化也是提高性能的必要手段,将社区内的帖子、文章进行实时的静态化,有更新的时候再重新静态化也是大量使用的策略,像Mop的大杂烩就是使用了这样的策略,网易社区等也是如此。 同时,html静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以考虑使用html静态化来实现,比如论坛中论坛的公用设置信息,这些信息目前的主流论坛都可以进行后台管理并且存储再数据库中,这些信息其实大量被前台程序调用,但是更新频率很小,可以考虑将这部分内容进行后台更新的时候进行静态化,这样避免了大量的数据库访问请求。 2、图片服务器分离 大家知道,对于Web服务器来说

大型网站性能优化的通用方法

拈花ヽ惹草 提交于 2020-03-09 06:17:18
1、HTML静态化 其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我们常访问的各个门户站点的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。 除了门户和信息发布类型的网站,对于交互性要求很高的社区类型网站来说,尽可能的静态化也是提高性能的必要手段,将社区内的帖子、文章进行实时的静态化,有更新的时候再重新静态化也是大量使用的策略,像Mop的大杂烩就是使用了这样的策略,网易社区等也是如此。 同时,html静态化也是某些缓存策略使用的手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以考虑使用html静态化来实现,比如论坛中论坛的公用设置信息,这些信息目前的主流论坛都可以进行后台管理并且存储再数据库中,这些信息其实大量被前台程序调用,但是更新频率很小,可以考虑将这部分内容进行后台更新的时候进行静态化,这样避免了大量的数据库访问请求。 2、图片服务器分离 大家知道,对于Web服务器来说

减小服务器负担,Apache启用mod_expires模块

徘徊边缘 提交于 2020-03-09 06:14:13
mod_expires可以减少10%左右的重复请求,让重复的用户对指定的页面请求结果都CACHE在本地,根本不向服务器发出请求。 在使用之前,首先要确认一下”mod_expires”模组是否有启用.如果是自己安装Apache来架设网页主机的话,这里我们可以透过编辑Apache的”httpd.conf”设定档来处理.搜寻一下,你可能会找到这么一行: #LoadModule expires_module modules/mod_expires.so 复制代码 将该行前面的”#”字号删除,然后将”httpd.conf”设定档储存后,重新启动Apache来使这个更新生效. 当然如果我们是租用虚拟主机的话,”httpd.conf”设定档我们一般用户是接触不到的,而在网站根目录里写个”.htaccess”设定档, 我想在运用上相对是较灵活的.”mod_expires”的设定资料除了可以写在Apache的”httpd.conf”设定档中,也可以写 在”.htaccess”设定档里. 我们知道在使用浏览器浏览网页时,浏览器会把网页资料快取(Cache)下来储存在本机端,用以加快下回浏览相同网页时不必再重新由网站上下载,进 而有加速的效果.使用mod_expires模组来加速网页浏览,这里所谓的”加速”,其实是利用”mod_expires”的功能,来设定网页文件的过 期时间,加长网页文件被浏览器快取