缓存服务器不可用是怎么回事?【NGINX入门】3.Nginx的缓存服务器proxy_cache配置

本文目录
- 缓存服务器不可用是怎么回事
- 【NGINX入门】3.Nginx的缓存服务器proxy_cache配置
- 什么是cdn, cdn对服务器有什么要求吗
- CDN有什么用CDN可以让网站变快吗
- web服务器缓存基本定义
- 服务器CPU二级缓存什么意思
- 如何清除WEB服务器的缓存
- 应用程序缓存会增加服务器负荷
- 浏览器缓存和服务器缓存
缓存服务器不可用是怎么回事
缓存服务器不可用的原因是:
1、用户的网络出问题了,所以访问不了内容。
2、服务器出了问题,服务器例行维护所以关闭了。
3、服务器带宽不够,接受不了太多人同时访问,所以就暂时访问不到。
缓存服务器(cache server),即用来存储网络上的其他用户需要的网页、文件等等信息的专用服务器。这种服务器不仅可以使用户得到他们想要的信息,而且可以减少网络的交换量。缓存服务器往往也是代理服务器。对于网络的用户,缓存服务器和代理是不可见的,在用户看来所有的信息都来自访问的网站。代理缓存:代理服务器是为公司内的多个用户/客户计算机缓存Web对象的单独机器。它们是位于客户端和托管的Web服务器之间的计算机,而且它们比本地缓存效率更高,因为在企业本地网络中的任何用户或计算机访问某个Web对象时,缓存拷贝对想访问该对象的任何其他用户/计算机是可用的,无需到Internet服务器上再次下载它。代理缓存可以在网络边缘与防火墙结合使用。
【NGINX入门】3.Nginx的缓存服务器proxy_cache配置
本文介绍NGINX缓存机制,配置和参数说明。
如图所示,nginx缓存,可以在一定程度上,减少源服务器的处理请求压力。因为静态文件(比如css,js, 图片)中,很多都是不经常更新的。nginx使用proxy_cache将用户的请求缓存到本地一个目录。下一个相同请求可以直接调取缓存文件,就不用去请求服务器了。毕竟,IO密集型服务的处理是nginx的强项。
Nginx的缓存加速功能是由proxy_cache(用于反向代理和静态缓存)和fastcgi_cache(PHP动态缓存)两个功能模块完成。
Nginx缓存特点:
先上个例子:
因为我是在一台服务器上做试验,所以用了两个端口 80 和 90 进行模拟两台服务器之间的交互。
接下来讲一下配置项:
这里我设置了 图片 、 css 、 js 静态资源进行缓存。
***隐藏网址***
当解析到上述文件名结尾的静态资源,会到缓存区获取静态资源。
如果获取到对应资源,则直接返回数据。
如果获取不到,则将请求转发给 proxy_pass 指向的地址进行处理。
这里直接处理 90 端口接受到的请求,到服务器本地目录 /mnt/blog 下抓取资源进行响应。
细心的读者应该发现,我在第二段例子里,留了个彩蛋 add_header wall "hey!guys!give me a star." 。
add_header 是用于在报头设置自定义的信息。
所以,如果缓存有效的话,那么静态资源返回的报头,一定会带上这个信息。
(1)Nginx系列教程(3)nginx缓存服务器上的静态文件
***隐藏网址***
(2)proxy_cache
***隐藏网址***
(3)Nginx使用upstream负载均衡和proxy_cache缓存实现反向代理
***隐藏网址***
什么是cdn, cdn对服务器有什么要求吗
cdn对服务器的要求是需要服务器全局负载均衡。
CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。
CDN的工作原理
***隐藏网址***
其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。
CDN有什么用CDN可以让网站变快吗
CDN是“内容分发网络”的英文缩写,它指的是一种利用缓存服务器在各地建立节点,从而提升网页和应用程序的访问速度的技术,是能够让网站访问变快的。
它既可以分发静态内容,如图片、视频、音频、HTML、CSS、JS等,也可以分发动态内容,如用户请求的个性化数据。
CDN的工作流程如下:
一、当用户点击网站页面上的内容URL时,首先经过本地DNS系统的解析。
二、DNS系统会将域名的解析权交给CNAME所指向的CDN专用DNS服务器,而CDN专用DNS服务器会将CDN的全局负载均衡设备的IP地址返回给用户,用户根据这个IP地址,向CDN的全局负载均衡设备发起内容URL访问请求。
三、CDN全局负载均衡设备会根据用户的IP地址和请求的内容URL,选择一个距离用户最近的区域负载均衡设备,并告诉用户向它发起请求。
四、区域负载均衡设备会根据一些条件,如用户与缓存服务器的距离、缓存服务器上是否有用户需要的内容、缓存服务器的负载情况等,选择一个合适的缓存服务器,并将它的IP地址返回给用户。
五、用户根据这个IP地址,向缓存服务器发起请求。缓存服务器会响应用户请求,并将用户所需内容传送到用户终端。
当然,如果缓存服务器上没有用户想要的内容,它就会向上一级缓存服务器或源站请求内容,直到从网站的源服务器获取内容,并将其拉到本地。
如果对CDN有兴趣的可以百度搜索我们guan网了解更多哦~
web服务器缓存基本定义
为了能够给用户一个良好的上网体验,大部分的网页和浏览器都配置了预加载以及缓存功能。今天昌平镇电脑培训就通过案例分析来了解一下,关于web缓存的基本定义与类型介绍。
Web缓存是什么?为什么要使用缓存?
Web缓存处于服务器(也称为源服务器)和客户端之间,监视请求并保存响应的副本,比如HTML页面,图片和文件等(统称为表述)。如果之后有对同一个URL的新请求,它会使用自己保存的内容来响应,而不是再次请求源服务器来获取内容。
使用Web缓存主要有下面两个原因:
减少延迟——因为响应请求的内容来自缓存(距客户端较近)而不是源服务器,它会花较少的时间来获得表述并将他们呈现出来。这使得Web看起来具有良好的响应速度。
减少网络传输——由于复用了表述,它可以减少客户端使用的带宽总量。如果客户需要为流量付费,这就意味着省钱。缓存会降低对带宽的要求,也降低处理难度。
Web缓存的种类
浏览器缓存
你在查看现代Web浏览器(比如IE、Safari或Mazilla)选项的时候,可能会看到“缓存”设置。这个选项让你配置一部分硬盘空间来保存你看过的表述。浏览器缓存的规则相当简单。它通常会在一次会话(即当前浏览器中一次调用)中检查表述是否新。
这个缓存在用户使用“回退”按钮或者点击一个浏览过的链接时会特别有用。而且,如果你在网站的各个页面中浏览相同的图片,他们几乎能马上从缓存中加载出来。
代理缓存
Web代理缓存的工作原理相同,但规模更大。代理以同样的方式为成百上千的用户服务;大公司和ISP常常把代码缓存建立在防火墙之上,也可能是以独立设备的形式存在(也称为中间设备)。
代理缓存即不是客户端的一部分,也不是服务器的一部分,而是在网络之外,必须以某种方式把请求路由过去。其中一种方式是手工修改浏览器代理设备,指定要使用的代码;另一种方式是拦截。拦截式代理会根据其自身的基础网络重定向Web请求,不需要在客户端配置,客户端甚至不知道它们的存在。
代理缓存是一种共享缓存,通常不只是一个用户,而是大量用户在使用代理缓存。正因为如此,他们特别擅长降低延迟和网络传输量。这是因为众人都需要的表述会被多次重复使用。
网关缓存
网关缓存又名“反向代理缓存”或“替代缓存”。网关缓存也是一种中介,它他们不是由网络管理员部署以节约带宽,而是由网站管理员自己部署,使其站点更具伸缩性、可靠性以及拥有更好的性能。
很多方法都可以把请求路由到网关缓存,但常见的方法是使用负载均衡器让他们对于客户来说,看起来就跟源服务器一样。
内容分发网络(CDN)在整个Internet(或它的一部分)中分发网关缓存,并将其出售给对此感兴趣的网站。
Web缓存对我有坏处么?我为什么要帮助它们?
Web缓存是互联网中误解深的技术之一。因为代理缓存可以隐藏使用网站的用户,所以网站管理员特别害怕失去对他们的站点的控制,这会使得他们很难去知道是谁在使用他们的站点。
然而不幸的是,即使没有Web缓存,网络上也有非常多的因素可以保证管理员精确的知道一个用户如何使用他们的站点。如果这是你非常关注的问题的话,这篇手册将会指导你如何在站点没有不友好的缓存机制的情况下获取你需要的统计信息。
服务器CPU二级缓存什么意思
服务器CPU二级缓存又称外部高速缓存,即高速缓冲存储器,是位于CPU和主存储器DRAM(DynamicRAM)之间的规模较小的但速度很高的存储器,通常由SRAM(静态随机存储器)组成。用来存放那些被CPU频繁使用的数据,以便使CPU不必依赖于速度较慢的DRAM(动态随机存储器)。L2高速缓存一直都属于速度极快而价格也相当昂贵的一类内存,称为SRAM(静态RAM),SRAM(StaticRAM)是静态存储器的英文缩写。由于SRAM采用了与制作CPU相同的半导体工艺,因此与动态存储器DRAM比较,SRAM的存取速度快,但体积较大,价格很高。
如何清除WEB服务器的缓存
清除web服务器的缓存方法有如下:
1、打开电脑,登录网站web端后台,选择清除缓存;
2、通过FTP工具连接网站,进入根目录;
3、进入根目录后,点击删除缓存文件夹;
4、打开电脑,进入浏览器,通过浏览器清除本地电脑的缓存即可。
应用程序缓存会增加服务器负荷
不是的。
应用程序缓存可以帮助减少服务器的负载,因为它可以减少对数据库和服务器的请求次数。当应用程序缓存被启用时,一些经常被访问的数据会被存储在缓存中,当用户再次请求这些数据时,应用程序可以直接从缓存中获取,而不需要再次向服务器或数据库发送请求。
浏览器缓存和服务器缓存
一、浏览器缓存
***隐藏网址***
浏览器第一次请求资源的时候服务器会告诉客户端是否应该缓存资源,根据响应报文中HTTP头的缓存标识,决定是否缓存结果,是则将请求结果和缓存标识存入浏览器缓存中。如下图:
1.强制缓存 :浏览器会对缓存进行查找,并根据一定的规则确定是否使用缓存。
强制缓存的缓存规则?
HTTP/1.0 Expires 这个字段是绝对时间,比如2018年6月30日12:30,然后在这个时间点之前的请求都会使用浏览器缓存,除非清除了缓存。
这个字段的缺点就是只会同步客户端的时间,这就有可能修改客户端时间导致缓存失效。
HTTP/1.1 cache-Control 这个是1.1的时候替换Expires的,它会有几种取值:
public :所有内容都将被缓存(客户端和代理服务器都可缓存)
private :所有内容只有客户端可以缓存, Cache-Control的默认取值
no-cache :客户端缓存内容,但是是否使用缓存则需要经过协商缓存来验证决定
no-store :所有内容都不会被缓存,即不使用强制缓存,也不使用协商缓存
max-age=xxx (xxx is numeric) :缓存内容将在xxx秒后失效
比如max-age=500,则在500秒内再次请求会直接只用缓存。
优先性:cache-Control 》 Expires
如果同时存在,cache-Control会覆盖Expires。
这个字段的缺点就是:
如果资源更新的速度是秒以下单位,那么该缓存是不能被使用的,因为它的时间单位最低是秒。
如果文件是通过服务器动态生成的,那么该方法的更新时间永远是生成的时间,尽管文件可能没有变化,所以起不到缓存的作用。
上图中浏览器缓存中存在该资源的缓存结果,并且没有失效,就会直接使用缓存的内容。
上图中浏览器缓存中没有该资源的缓存结果和标识,就会直接向服务器发起HTTP请求。
2.协商缓存: 浏览器的强制缓存失效后(时间过期),浏览器携带缓存标识请求服务器,由服务器决定是否使用缓存。
服务器决定的规则?
控制协商缓存的字段有 Last-Modified / If-Modified-Since 和 Etag / If-None-Match。
①Last-Modified 是服务器返回给浏览器的本资源的最后修改时间。
当下次再次请求的时候,浏览器会在请求头中带 If-Modified-Since ,即上次请求下来的 Last-Modified 的值,
然后服务器会用这个值和该资源最后修改的时间比较,如果最后修改时间大于这个值,则会重新请求该资源,返回状态码200。
如果这个值和最后修改时间相等,则会返回304,告诉浏览器继续使用缓存。
② Etag 是服务器返回的一个hash值。
当下次再次请求的时候,浏览器会在请求头中带 If-None-Match ,即上次请求下来的 Etag 值,
然后服务器会用这个值和该资源在服务器的 Etag 值比较,如果一致则会返回304,继续使用缓存;如果不一致,则会重新请求,返回200。
二、服务器缓存
上面是一个简单的流程图:
用户1访问A页面,服务器解析A页面返回给用户1,同时在服务器内存上做一定映射,把A页面缓存在硬盘上面
用户2访问A页面,服务器直接根据内存上的映射找到对应的页面缓存,直接返回给用户2,这样就减少了服务器对同一页面的重复解析
服务器缓存和浏览器缓存的区别:
服务器缓存是把页面缓存到服务器上的硬盘里,而浏览器缓存是把页面缓存到用户自己的电脑里
Nginx服务器
Nginx是一个高性能的HTTP和反向代理服务器。具有非常多的优越性:
在连接高并发的情况下,Nginx是Apache服务器不错的替代品,Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。
Nginx提供了expires、etag、if-modified-since指令来实现浏览器缓存控制。
nginx -s reload#重新加载配置文件
nginx -s reopen#重新打开log文件
nginx -s stop#快速关闭nginx服务
nginx -s quit #优雅的关闭nginx服务,等待工作进程处理完所有的请求
Nginx设置静态文件的缓存过期时间
location ~.*\.(js|css|html|png|jpg)$ {
expires 3d;
}
expires 3d; //表示缓存3天
expires 3h; //表示缓存3小时
expires max; //表示缓存10年
expires -1; //表示永远过期。
***隐藏网址***
对于静态资源会自动添加ETag,可以通过添加etag off指令禁止生成ETag。如果是静态文件,那么Last-Modified值为文件的最后修改时间。
在开发调试web的时候,经常会碰到因浏览器缓存(cache)而经常要去清空缓存或者强制刷新来测试的烦恼,提供下apache不缓存配置和nginx不缓存配置的设置。在常用的缓存设置里面有两种方式,都是使用add_header来设置:分别为Cache-Control和Pragma。
location ~ .*\.(css|js|swf|php|htm|html )$ {
add_header Cache-Control no-store;
add_header Pragma no-cache;
}
nginx gzip压缩
使用 gzip 压缩可以降低网站带宽消耗,同时提升访问速度。
主要在nginx服务端将页面进行压缩,然后在浏览器端进行解压和解析,
目前大多数流行的浏览器都迟滞gzip格式的压缩,所以不用担心。
默认情况下,Nginx的gzip压缩是关闭的,同时,Nginx默认只对text/html进行压缩
gzip on;
ersio #开启gzip压缩输出
***隐藏网址***
***隐藏网址***
#如果我们使用了proxy_pass进行反向代理,那么nginx和后端的upstream server之间是用HTTP/1.0协议通信的。
gzip_vary on ;
***隐藏网址***
#所以避免浪费不支持的也压缩,所以根据客户端的HTTP头来判断,是否需要压缩
gzip_comp_level 6;
#设置gzip压缩等级,等级越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大 1-9
gzip_proxied any;
#Ngnix作为反向代理的时候启用
#expample:gzip_proxied no-cache;
# off – 关闭所有的代理结果数据压缩
# expired – 启用压缩,如果header中包含”Expires”头信息
# no-cache – 启用压缩,如果header中包含”Cache-Control:no-cache”头信息
# no-store – 启用压缩,如果header中包含”Cache-Control:no-store”头信息
# private – 启用压缩,如果header中包含”Cache-Control:private”头信息
# no_last_modified – 启用压缩,如果header中包含”Last_Modified”头信息
# no_etag – 启用压缩,如果header中包含“ETag”头信息
# auth – 启用压缩,如果header中包含“Authorization”头信息
# any – 无条件压缩所有结果数据
gzip_types text/html ;#压缩的文件类型
#设置需要压缩的MIME类型,非设置值不进行压缩
#param:text/html|application/x-javascript|text/css|application/xml
gzip_buffers 16 8k; #设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间
#设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间
# param1:int 增加的倍数
# param2:int(k) 后面单位是k
# example: gzip_buffers 4 8k;
# Disable gzip for certain browsers.
gzip_disable “MSIE .(?!.*SV1)”; #ie6不支持gzip,需要禁用掉ie6

更多文章:
sd卡要求格式化怎么办(sd卡提示需要格式化,怎么恢复数据)
2026年11月3日 20:00
电脑重启死循环进不去(电脑出现无限自动重启的死循环如何解决)
2026年11月3日 17:00
tif用什么打开(tif文件用什么打开Win10打开tif文件的详细步骤)
2026年11月3日 16:20
海外短视频跨境电商平台是真的吗(TikTok短视频带货到底值不值得做海外抖音赚钱靠谱吗)
2026年11月3日 15:40






