缓存服务器

nginx 默认配置语法和日志的format

主宰稳场 提交于 2019-12-24 10:48:46
nginx 默认配置 查看有nginx哪些默认配置文件,打开/etc/nginx/nginx.conf文件,查看尾行部分 会默认将/etc/nginx/conf.d/文件下其他以.conf结尾的配置文件都导入到该文件中。 查看/etc/nginx/conf.d/文件下默认有哪些文件 ls /etc/nginx/conf.d/ 也就是说默认情况下有两个配置文件nginx.conf default.conf 解读 nginx.conf 配置文件,该配置文件主要分为三大块   第一块: user 设置nginx服务的系统使用用户 worker_processes 工作进程数 error_log nginx的错误日志 pid nginx服务启动时候pid 第二块:(事件) events worker_connections 每个进程允许最大连接数 use 工作进程数 (设置是 epoll 还是 select) 第三块: http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http

NGINX下配置CACHE-CONTROL

余生长醉 提交于 2019-12-24 06:56:05
转载的,那个页面让关了,,没标明请谅解。 HTTP协议的Cache -Control指定请求和响应遵循的缓存机制。 在请求消息或响应消息中设置 Cache-Control并不会影响另一个消息处理过程中的缓存处理过程。 请求时的缓存指令包括no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached等。 响应消息中的指令包括public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。 浏览器中关于Cache 的3 属性: Cache-Control: 设置相对过期时间, max-age指明以秒为单位的缓存时间. 若对静态资源只缓存一次, 可以设置max-age的值为315360000000 (一万年). Http 协议的cache-control 的常见取值及其组合释义: no-cache: 数据内容不能被缓存, 每次请求都重新访问服务器, 若有max-age, 则缓存期间不访问服务器. no-store: 不仅不能缓存, 连暂存也不可以(即: 临时文件夹中不能暂存该资源) private(默认): 只能在浏览器中缓存, 只有在第一次请求的时候才访问服务器, 若有max-age, 则缓存期间不访问服务器.

php中header函数参数的Cache-control:private,no-cache,must-revalidate,max-age的使用方法!

感情迁移 提交于 2019-12-24 05:42:00
由于我做的是登录,也就是用户登录每次登陆时都要来访问服务器,不需要在客户机做缓存,于是在网上找了找,发下一下文章不错于是传了上来。 网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。其作用根据不同的重新浏览方式分为以下几种情况: (1) 打开新窗口 值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。 而如果指定了max-age值,那么在此值内的时间里就不会重新访问服务器,例如: Cache-control: max-age=5(表示当访问此网页后的 5秒 内再次访问不会去服务器) (2) 在地址栏回车 值为private或must-revalidate则只有第一次访问时会访问服务器,以后就不再访问。 值为no-cache,那么每次都会访问。 值为max-age,则在过期之前不会重复访问。 (3) 按后退按扭 值为private、must-revalidate、max-age,则不会重访问, 值为no-cache,则每次都重复访问 (4) 按刷新按扭 无论为何值,都会重复访问 Cache-control值为“no-cache”时,很容易让人产生误解,使人误以为是响应不被缓存

Web前端知识体系

倖福魔咒の 提交于 2019-12-24 04:03:20
看到一篇不错的文章,拿来收藏和分享。 原文:http://mp.weixin.qq.com/s/UFTfdE7LYhHquWEzwZKLCQ Web前端技术由 html、css和 javascript 三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言。而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知识点,因此对于初学者很难理清楚整个体系的脉络结构。本文将对Web前端知识体系进行简单的梳理,对应的每个知识点点到为止,不作详细介绍。目的是帮助大家审查自己的知识结构是否完善,如有遗漏或不正确的地方,希望共勉。 一、JAVASCRIPT 篇 0、基础语法 Javascript 基础语法包括:变量声明、数据类型、函数、控制语句、内置对象等。 在ES5 中,变量声明有两种方式,分别是 var 和 function ,var 用于声明普通的变量,接收任意类型,function用于声明函数。另外,ES6 新增了 let、const、import 和 class 等四个命令,分别用以声明 普通变量、静态变量、模块 和 类 。 JS数据类型共有六种,分别是 String、Number、Boolean、Null、Undefined 和 Object 等, 另外,ES6新增了 Symbol 类型。其中,Object 是引用类型,其他的都是原始类型

缓存数据库Memcached——安装及管理数据库操作

瘦欲@ 提交于 2019-12-24 01:51:48
一、Memcached 简介: (1)介绍: Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。 (2)特点: memcached作为高速运行的分布式缓存服务器,具有以下的特点: 1、协议简单; 2、基于libevent的事件处理; 3、内置内存存储方式; 4、memcached不互相通信的分布式。 (3)存储方式: 为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。 二、memcached数据库配置: 1、准备安装所需源码包 [root@localhost ~]# mkdir /mnt/tools [root@localhost ~]# mount.cifs //192

Nginx简介及配置文件详解

前提是你 提交于 2019-12-24 01:10:12
http://blog.csdn.net/hzsunshine/article/details/63687054 一 Nginx简介 Nginx是一款开源代码的 高性能HTTP服务器 和 反向代理服务器 ,同时支持 IMAP/POP3/SMTP代理服务 1.Nginx工作原理 Nginx由 内核 和 模块 组成,完成工作是通过查找配置文件将客户端请求映射到一个location block(location是用于URL匹配的命令),location配置的命令会启动不同模块完成工作。 Nginx模块分为核心模块,基础模块和第三方模块。 核心模块:HTTP模块、EVENT模块(事件)、MAIL模块。 基础模块:HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块、HTTP Rewrite模块。 第三方模块:HTTP Upstream Request Hash模块、Notice模块、HTTP Access Key模块。 2.性能优势 web服务器 ,处理静态文件、索引文件以及自动索引效率高。 代理服务器,快速高效 反向代理 ,提升网站性能。 负载均衡器,内部支持Rails和PHP,也可支持HTTP代理服务器,对外进行服务。同时 支持简单容错 和利用 算法进行负载均衡 。 性能方面,Nginx专门为性能设计,实现注重效率。采用Poll模型,可以支持更多的并发连接

企业级--CDN及varnish介绍

随声附和 提交于 2019-12-23 21:37:02
一、varnish简介 1.varnish是什么? Varnish是一款高性能且开源的反向代理服务器和http加速器(缓存服务器)。Varnish使用内存缓存文件来减少响应时间和网络带宽消耗。 2.varnish的特点 Varnish访问速度更快,Varnish采用了“Visual Page Cache”技术,所有缓存数据都直接从内存读取,而squid是从硬盘读取,因而Varnish在访问速度方面会更快。(所以说varnish有个缺点,当varnish进程一旦被down,缓存数据都会从内存中完全释放,此时所有请求都会发送到后端服务器,在高并发情况下,会给后端服务器造成很大压力。) Varnish可以支持更多的并发连接,因为Varnish的TCP连接释放要比Squid快。因而在高并发连接情况下可以支持更多TCP连接。 Varnish可以通过管理端口,使用正则表达式批量的清除部分缓存,而Squid是做不到的。 squid属于是单进程使用单核CPU,但Varnish是通过fork形式打开多进程来做处理,所以是合理的使用所有核来处理相应的请求。 事实上,varnish整体的性能将会高于squid; 3.CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发

什么是页面缓存

微笑、不失礼 提交于 2019-12-23 21:16:39
对于网站建设来说,页面缓存是安装在网站服务器之前的缓存服务器,用于卸载对于服务器上的静态和动态对象的请求。在 建站系统 或建站软件中页面缓存还有其它常见名称,如反向代理缓存,反向代理服务器和反向代理。经过慎重考虑,最后还是采用了页面缓存这个术语,因为在建站系统中代理程序还会负责负载平衡或SSL加速,而我们只想专注于缓存服务器对可扩展性的影响。 页面缓存会处理部分或所有请求,直到它存储的页面或数据过期,或服务器收到的请求需要没有被缓存的数据。请求失败叫做缓存未命中,原因可能是缓存满了,没有空间为最新的请求缓存数据,也可能是缓存未满,但请求的频率较低或最近重启过。未命中缓存的请求会被直接传递给web server,并且用该请求回答并填充缓存,从而替换缓存中最近很少使用的数据,或者在空白处写入数据。 在这个过程中,有三个关键点。 第一,应该在web server处理请求之前实现页面缓存,这样建站系统就会得到很大的可扩展性。生成动态内容的web server工作量会大大减少,因为计算过的结果在合适的时间被恰当的缓存了。提供静态内容的web server不需要查询的内容,可以少用一些缓存空间。因此,对于静态网站来说,缓存的作用就不那么明显了,因为输出内容本身就没有太大的计算量和负担。 第二,建站系统中要实现缓存必须使用正确的http头,确保对内容和查询结果进行最大化的缓存,并且 网站建设

缓存中的问题

风流意气都作罢 提交于 2019-12-23 18:54:56
缓存中的问题 缓存穿透 原因: 查询数据库中肯定不存在的数据,多次查询造成数据库压力过大。 一般我们一次查询的请求流程是,先去查询缓存中是否有数据,如果没有就去数据库中查,然后将查询的数据写到缓存中。 如果有人恶意查询,比如像id=-1的数据库中肯定不存在。那么在大量请求查询id=-1的情况下,就会给数据库造成巨大的压力,甚至可能崩溃,这就是缓存穿透带来的问题。简单说就是查询数据库中肯定没有的数据,缓存相当于被绕了过去,直接给服务器造成巨大压力,这就是缓存穿透。 解决: 数据库中查询不存在的数据时校验查询字段,或以Null的形式写到缓存中去。但是光这样做还是存在很大的问题,如果给缓存中写入了Null,一直保存Null也会给其他用户产生问题,所以在这里建议给缓存中写入Null的数据设置较短的过期时间,这样既能防止缓存穿透带来的服务器压力问题,也可以防止影响其他用户。 缓存击穿 原因: 一条数据被大量的请求频繁查询,也就是一条热点信息。在某一个时间节点时,缓存过期。那么此时这些请求就会大量涌入直接访问数据库,给服务器带来巨大的压力,这就是缓存击穿。 解决: 最简单的办法当然是给热点数据在缓存中设置成永不过期就好了,这已经满足了大部分公司的需求。 而对于极少数并发量数据量极高的公司可以加上互斥锁来解决缓存击穿问题,具体步骤如下: 请求过来,先去缓存中查询是否有数据 没有数据,则获取锁

前端性能优化 —— 添加Expires头与Cache-control区别

非 Y 不嫁゛ 提交于 2019-12-23 17:37:14
要:添加Expires头能有效的利用浏览器的缓存能力来改善页面的性能,能在后续的页面中有效避免很多不必要的Http请求,WEB服务器使用Expires头来告诉Web客户端它可以使用一个组件的当前副本,直到指定的时间为止。 例如:Expires:Thu,15 Apr 2010 20:00:00 GMT; 他告诉浏览器缓存有效性持续到2010年4月15日为止,在这个时间之内相同的请求使用缓存,这个时间之外使用http请求。 Cathe-Control:max-age=315360000 Expires有一个非常大的缺陷,它使用一个固定的时间,要求服务器与客户端的时钟保持严格的同步,并且这一天到来后,服务器还得重新设定新的时间。 HTTP1.1引入了 Cathe-Control,它使用max-age指定组件被缓存多久, 从请求开始在max-age时间内浏览器使用缓存,之外的使用请求,这样就可以消除Expires的限制, 如果对浏览器兼容性要求很高的话,可以两个都使用。 这里对http 304 状态结合max-age做一个总结: 浏览器初次访问服务器---------------服务器返回200状态 如下图: 浏览器再次请求服务器时,浏览器会先判断max-age,如果到期则直接请求服务器,否则直接从缓存中取, 服务器收到请求后,判断文件是否被修改过,若是则直接返回200,否则返回304