反向代理缓存

一、Buffer和Cache
网上找不到标准答案;

不同点:
    Buffer:一般用于写操作,写缓冲;因为硬盘对于CPU而言是非常慢的,CPU将数据写入磁盘缓冲区之后,就认为写完了,之后由别的进程将数据写入硬盘;
    Cache:一般用于读操作,读缓存;--->提高数据的读取效率;

    CPU, CPU L1 L2 L3

相同点:
    都是设计到IO操作的,都是解决速度不一致的问题;

DMA:直接内存访问;以前比如WIM98的时候,如果直接拷贝的话,其他的事情都没有办法干了;
DMA是的输入输出是并行操作;
NUMA:非统一内存访问;
为什么服务器的内存不能乱插?一块内存对应一个CPU,在极特殊的情况下,CPU才会访问其他的内存;

Cache的重点:

    1.存放位置(多级Cache):
					客户端(浏览器缓存)
					内存(本机内存、远程服务器内存)
					硬盘(本地硬盘(SSD、SAS、SATA、IDE),远程服务器硬盘);

	2、过期时间
				TTL
	3、强制(失效)过期
	4.Cache的命中率

云备份是不需要缓存的;

面试不能较真;

二、浏览器DNS

比如访问:http://alidns.com

访问过程: 过去html源代码-->自上而下其中需要的所有元素--->浏览器本地计算和渲染;
注意:浏览器是边解析,边下载;(异步的,不会影响HTML加载,除非遇到JS,遇到JS会挂起加载的线程,等待JS执行完毕,继续往下执行);

浏览器的DNS缓存: DNS解析的速度20ms~120ms;

使用谷歌浏览器查看DNS缓存:chrome://net-internals/#dns

将所有的域名加载到同一个页面可以提高访问速度,但是产生的问题是,需要请求的域名非常多,解决办法是:

a、DNS预获取;
b、url预加载;

三、浏览器缓存

缓存协商:浏览器和web服务器进行缓存的一个对话;

浏览器缓存的方法:

  方法1:使用Last_Motified(最后修改时间)

    在linux服务器(web服务器)上通过调用stat,获取网页的最后修改时间,然后将其附带到页面的头部;

    打开crome浏览器-->网络--->全部--->查看响应(头信息)-->Last_Motified(GMT时间);

    查看所有浏览器缓存:about:cache,可以看到有些缓存是保存在硬盘中的,有些事保存在内存中的;

    打开crome调试:请求完毕之后,再次F5刷新,显示304 (not motified),没有修改;

      对比第一次请求,多了IF-Motified-Since:是否在这个时间点修改了,如果没有修改,直接使用本地缓存,给用户呈现;

    这种方法的缺陷:如果只是修改时间变了,但是内容没有变化,依然会产生网络传输;

  方法2:Etag:打标签

    比如使用MD5,每次请求MD5值,如果值没有改变,返回304;

    但是http没有规定MD5如何实现,可以自己实现;

    但是,上述方法只能使得每次请求不传输,但是并不会减少请求次数;

  方法3:过期时间(expires)

    转到或者Enter:所有没有过期的直接使用缓存。所有缓存机制均生效;

    F5或者刷新按钮: 过期时间要不受影响(不过问),其他的缓存协商都受影响;

    ctrl+F5:强制刷新,表示所有的缓存协商的办法失效,从新协商请求;

    http1.1:头部增加参数 max-age=...,表示相对本地时间,优先级最高,为了防止本地时间和服务器时间不一致导致的问题;

四、CDN

首先看一个例子:js过期时间 设置为1个小时,js刚上线,但是突然发现有一个bug,导致无法下单,如何解决?

   a、ctrl+F5    #强制刷新
   b、改名
   c、加上参数(加时间戳)  123.js?201601

为什么使用CDN?

1.不同运营商之间互联的问题;  BGP(贵)
2.用户到服务器之间网络传输长,节点多,延迟大;
3.现有服务器带宽有限;

  

时间: 2024-11-03 01:31:39

反向代理缓存的相关文章

Squid做反向代理缓存

环境介绍: 主机名 角色 IP地址 squid.contoso.com squid代理服务器 192.168.49.135 image01.contoso.com 图片服务器(web) 192.168.49.139 一.准备工作 以其中一台为例: [[email protected] etc]# iptables -L Chain INPUT (policy ACCEPT) target     prot opt source               destination Chain FO

Nginx构建反向代理缓存服务器

防伪码:曾经沧海难为水,除却巫山不是云. 代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上,然后由代理服务器去访问Web服务器, 并将Web服务器的Response回传给客户端:  反向代理: 与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提

nginx反向代理缓存服务器的构建

Nginx反向代理缓存服务器构建 一:代理服务可简单的分为正向代理和反向代理: 正向代理:用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上, 然后由代理服务器去访问Web服务器,并将Web服务器的Response回传给客户端: 反向代理:与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提供的服务就

Nginx反向代理缓存服务器搭建

Nginx反向代理 代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上, 然后由代理服务器去访问Web服务器,并将Web服务器的Response回传给客户端: 反向代理: 与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提供的服务就是反向代理.

nginx反向代理缓存服务器构建

博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上, 然后由代理服务器去访问Web服务器,并将Web服务器的Response回传给客户端: 反向代理: 与正向代理相反,如果局域网

nginx 反向代理缓存服务器构建

代理服务可简单的分为正向代理和反向代理:   正向代理: 用于代理内部网络对Internet的连接请求(如VPN/NAT),客户端指定代理服务器,并将本来要直接发送给目标Web服务器的HTTP请求先发送到代理服务器上, 然后由代理服务器去访问Web服务器, 并将Web服务器的Response回传给客户端: 反向代理: 与正向代理相反,如果局域网向Internet提供资源,并让Internet上的其他用户可以访问局域网内资源, 也可以设置一个代理服务器, 它提供的服务就是反向代理. 反向代理服务器

FastDFS + Nginx 反向代理缓存 安装与配置

FastDFS + Nginx 反向代理缓存 安装与配置 作者:斯巴达克斯 时间:March 26, 2015 分类:存储 操作系统 CentOS release 6.5 (Final) 64 nginx相关软件 nginx-1.4.7 下载地址: http://nginx.org/en/download.html#nginx清除缓存模块 ngx_cache_purge-2.1 http://labs.frickle.com/nginx_ngx_cache_purge/pcre-8.36 ftp

nginx配置、反向代理缓存、负载均衡

一.nginx基本配置nginx开启文件目录浏览功能(web上显示目录) 1location / { 2 root /data/www/file //指定实际目录绝对路径: 3 autoindex on; //开启目录浏览功能: 4 autoindex_exact_size off; //关闭详细文件大小统计,让文件大小显示MB,GB单位,默认为b: 5 autoindex_localtime on; //开启以服务器本地时区显示文件修改日期! 6}php-fpm配置 1 location ~

解决nginx反向代理缓存不起作用的问题

昨天尝试用nginx搭建nuget镜像服务器,镜像服务器需要两个功能:1)反向代理:2)内容缓存. 用nginx做反向代理,配置非常简单,只需在/etc/nginx/nginx.conf中添加一个包含proxy_pass的server设置: server { listen 80; listen [::]:80; server_name 镜像服务器主机名; location / { proxy_pass http://www.nuget.org; } } 而添加缓存功能,配置稍微复杂些. 首先要创

Varnish反向代理缓存服务器

缓存及加速 高性能缓存服务器1.1 Varnish概述一款高性能.开源的反向代理服务器和缓存服务器(一台varnish可以抵6台Squid)Varnish使用内存做为缓存设备(纯内存缓存服务器方案),相对于Squid(采用硬盘缓存),拥有更快的缓存速度(varnish内存管理完全交给内核,但当缓存内容超过阈值时,内核会自动将一部分缓存存入swap中,让出内存) 1.Varnish进程 varnish主要运行两个进程:Management 进程和Child进程(也称为Cache进程)Managem