您的位置:首页 > 新闻 > 推广

浅谈Nginx代理缓存配置
推广 2024-9-22编辑:深圳网站建设阅读(标签: WordPress 浅谈 缓存

前言

nginx最常见的【de】应用场【chǎng】景就是作为反向【xiàng】代理服务器使用,那必【bì】然要使用代理功能,为了提高性【xìng】能,代【dài】理缓存也是必不可少的一【yī】项配置。实【shí】践发【fā】现,Nginx的限速也是基于缓存的。

代理缓存之proxy_buffering

proxy_buffering可以是on也【yě】可以是off,当开启【qǐ】时,代理服务【wù】器将启用【yòng】缓【huǎn】存功能【néng】,包括硬盘缓存和内存缓存,当buffer满时将会【huì】使用磁盘作【zuò】为缓存【cún】,和其配套使用【yòng】的参【cān】数介绍如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 1. proxy_buffering  on; # 该参【cān】数【shù】设置是【shì】否开【kāi】启proxy的buffer功能,参数的值为on或者off。 # 如果这个【gè】设置为off,那么proxy_buffers和proxy_busy_buffers_size这两个【gè】指令【lìng】将会失效。 # 但【dàn】是无论proxy_buffering是否开【kāi】启,proxy_buffer_size都是生效的 2. proxy_buffer_size  4k; # 该参数用来设置一个特殊的buffer大小的。 # 从被代理服务器(C)上获取【qǔ】到的【de】第一部分响应数【shù】据内容到代【dài】理服【fú】务器(B)上,通常是header,就存到【dào】了【le】这个buffer中。 # 如果该参数设置太小【xiǎo】,会出【chū】现502错误【wù】码,这是因【yīn】为这部【bù】分buffer不够【gòu】存储header信息。建【jiàn】议设置为4k。 3. proxy_buffers  8  4k; # 这【zhè】个参【cān】数设置【zhì】存储被代理【lǐ】服务器上的数据所占用的buffer的个数和每个buffer的大【dà】小。 # 所有buffer的大小为这两个数字的乘积。 4. proxy_busy_buffer_size 16k; # 在所有的buffer里,我们【men】需要规定一部分buffer把自己存【cún】的【de】数据【jù】传【chuán】给A,这【zhè】部分buffer就叫做【zuò】busy_buffer。 # proxy_busy_buffer_size参数用来设置处【chù】于busy状态【tài】的buffer有多大。 # 对于B上buffer里【lǐ】的【de】数据何时传【chuán】输【shū】给A,我个人【rén】的【de】理解是这样的: # 1)如【rú】果完【wán】整数据大【dà】小小【xiǎo】于busy_buffer大小,当数据传输完成后,马上传给A; # 2)如果完整数据大小不少于busy_buffer大小,则装【zhuāng】满【mǎn】busy_buffer后,马上传【chuán】给【gěi】A; 5. proxy_temp_path # 语法:proxy_temp_path  path [level1 level2 level3] # 定义proxy的临时文件存在目录以及目录的层级。 # 例:proxy_temp_path /usr/local/nginx/proxy_temp 1 2; # 其【qí】中/usr/local/nginx/proxy_temp为临时文件所【suǒ】在目录,1表示层级1的目录名为1个数字【zì】(9-22),2表示层级2目录名为 # 2个数字(9-22) 6. proxy_max_temp_file_size # 设置临时文件【jiàn】的总大小,例如【rú】 proxy_max_temp_file_size 100M; 7. proxy_temp_file_wirte_size # 设置同时【shí】写入临时文【wén】件【jiàn】的数据量的总【zǒng】大小。通常设置【zhì】为8k或者16k。

这里【lǐ】其实【shí】没有什【shí】么好说得,但【dàn】是有一个点【diǎn】要注意,代理产【chǎn】生的临时文【wén】件【jiàn】不会自删除,如果【guǒ】这里将【jiāng】代理作为下载服务【wù】,那【nà】可能产生【shēng】大量的临【lín】时文件,最终导致磁盘写满。

作为下载服务器的代理机时

接上面的问题,如果要将Nginx作为【wéi】下【xià】载【zǎi】服务【wù】的代理机器【qì】时怎么【me】操作【zuò】,这里有两个选项:

  • 不使用代理(万事大吉)
  • 搭配proxy_cache_path使用

不【bú】需要【yào】使【shǐ】用一些依【yī】赖缓存的功能时完全【quán】可以【yǐ】不适用代【dài】理缓存功能【néng】,proxy_buffering设置为off即可,但是如果【guǒ】想使用一些高级【jí】功能,比如下【xià】载限时【shí】速,是依赖【lài】proxy_buffering的,这里就【jiù】要采用第二种【zhǒng】方案,proxy_buffering搭配proxy_cache_path一期使用。

代理缓存之proxy_cache_path

proxy_cache_path会【huì】对访问过的内容在本地建立副【fù】本,当再次访问时【shí】不【bú】必请求源【yuán】服务【wù】器就可以返回【huí】数据,同时支持本地副【fù】本的过过期【qī】时间【jiān】配置

proxy_cache_path需【xū】要【yào】在【zài】http模块配置,下面是一个例【lì】子:

1 proxy_cache_path /tmp/nginx_cache/ levels=1:2 keys_zone=my_zone:10m inactive=2m max_size=800m;

下面是参数介绍

1 2 3 4 5 6 7 /tmp/nginx_cache/  #本地路径,用来设置Nginx缓存资源的存放地址 levels          #默认所有缓存文件都放在同【tóng】一个【gè】/tmp/nginx_cache/下,但是会影响缓存【cún】的性能,因此通常【cháng】会在/tmp/nginx_cache/下面建立子【zǐ】目【mù】录【lù】用来【lái】分别存【cún】放【fàng】不同的文件。假【jiǎ】设levels=1:2,Nginx为将要缓存的资源生成的key为f4cd0fbc769e94925ec5540b6a4136d0,那么key的最后一位0,以及倒数第9-22位6d作为两级【jí】的【de】子目【mù】录【lù】,也【yě】就【jiù】是该资源最终会被缓存到【dào】/tmp/nginx_cache/0/6d目录中 key_zone        #在共享【xiǎng】内存中设置一块存储区域来存【cún】放缓存【cún】的key和metadata(类【lèi】似使【shǐ】用次数),这样nginx可以快【kuài】速判【pàn】断一个request是否命中或者【zhě】未命中缓存【cún】,1m可【kě】以存储8000个key,10m可【kě】以存储80000个key max_size        #最【zuì】大【dà】cache空间,如果【guǒ】不指【zhǐ】定,会使用掉所有disk space,当达到配额后,会【huì】删除最少使【shǐ】用的cache文【wén】件 inactive        #未被【bèi】访【fǎng】问文【wén】件在【zài】缓存【cún】中保留【liú】时间,本配置【zhì】中如果60分钟【zhōng】未被【bèi】访问则不论状态【tài】是否为expired,缓存【cún】控制程【chéng】序会【huì】删【shān】掉文件。inactive默认是10分钟。需要注意的是,inactive和expired配置项的【de】含义是不同的,expired只是缓存过期,但不【bú】会被删【shān】除,inactive是删除指定时间内未被访问的缓存【cún】文件 use_temp_path   #如果为【wéi】off,则nginx会将缓存文【wén】件直接【jiē】写入指【zhǐ】定的cache文件中【zhōng】,而不是【shì】使用temp_path存储,official建议为off,避免【miǎn】文件在不同文件系统中【zhōng】不必要的拷贝 proxy_cache     #启【qǐ】用proxy cache,并指定key_zone。另外,如果【guǒ】proxy_cache off表示关闭掉缓存【cún】。

使用keys_zone是在server块内部,比如

1 2 3 4 5 6 7 8 9 server {     ...     proxy_buffering on;     location / {         proxy_cache my_zone;         proxy_pass http://my_upstream;     } }
服务范围:整站优化、站内优化、外贸网站优化、K站恢复
服务优势:10年优化SEO经验,上词稳【wěn】定【dìng】,达标率【lǜ】高、费【fèi】用低
其它服务:网站建设【shè】、企【qǐ】业邮箱、数字证书ssl、400电【diàn】话、
联系方式:电话:13714666846 微信同号

WordPress,浅谈,缓存【cún】,WordPress,浅谈,缓存相关【guān】推【tuī】荐预约建网站

联系我们 MORE+
网站建设公司联系方式
  • 电话:13714666846
  • 坐机:0755-29765948
  • 邮箱:Gong588@city96.com
  • 地址:深圳市罗湖区凉果街5栋2033号
  • 深圳市网商在线科技有限公司
深圳网站建设公司
24小时服务热线 0755-29765948
  • 地址:深圳市罗湖区人民北路2033号206
  • 电话:0755-29765948 传真:82256610
  • 手机:13714666846 18948334877
  • 邮箱:gong@city96.com 164761418@qq.com
  • 粤ICP备14049207号
创意化数字品牌整合网络营销
营销网站让你坐等商机坐佣客户,Rss

版权所有:深圳市网商在线科技有限公司

友情链接: