当前位置: 首页 > news >正文

缓存代理服务器

1 缓存代理

1.1 缓存代理的概述

web代理的作用

缓存网页对象,减少重复请求

存储一些之前被访问的或且可能将要备再次访问的静态网页资源对象,使用户可以直接从缓存代理服务器获取资源,从而减少上游原始服务器的负载压力,加快整个整个访问速度。代理服务器还可以代替客户端去获取原始服务器资源,从而隐藏客户端真实地址。

1.2 代理服务器的工作机制

1)代理客户机向网站请求数据,从而可以隐藏用户的真实IP地址。
2)将获得的网页数据(静态 、web、元素)保存到缓存中并发送给客户机,一遍下次请求相同的数据时快速响应。

1.3 代理服务器的概念

代理服务器是一个位于客户端和原始(资源)服务器之间的服务器,为了从原始服务器取得内容,客户端向代理服务器发送一个请求并指定目标原始服务器,然后代理服务器转交请求并将获得的内容返回给客户端。

缓存代理对于web至关重要,尤其对于大型高负载web站点。缓存可作为性能优化的一个重要手段,可以极大减轻后端服务器的负载,通常用于静态资源,即减少经常更新的资源,如图片、css或js等进行缓存,从而在每次刷新浏览器的时候,不用重新请求,而是从缓存里面读取,这样就可以减轻服务器的压力。

1.4 代理服务器的作用

资源获取

代替客户端实现从原始服务器的资源获取

加速访问

代理服务器可能力原始服务器更近,

缓存作用

代理服务器保存

隐藏真实地址

代理服务器

1.5 常见的web缓存代理

本地实现 Nginx Squid Varnish
云环境远端实现 CDN

2 Nginx缓存代理

2.1 页面缓存

两台nginx服务器

192.168.111.44

192.168.111.55

一台nginx缓存服务器

192.168.111.10

两台nginx服务器长连接状态关闭

nginx缓存服务器配置
http {proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;#####################################################
●path:强制参数,指定缓存文件的存放路径。
●levels:定义了缓存目录的层级。每层可以用1(最多16种选择,0-f)或2(最多256种选择,00-ff)表示,中间用 : 分隔。
proxy_cache_path /data/nginx/cache;  代表所有缓存只有一个目录,比如/data/nginx/cache/d7b6e5978e3f042f52e875005925e51b
proxy_cache_path /data/nginx/cache levels=1:2;  代表缓存是二层目录(有16*256=4096个目录),比如/data/nginx/cache/b/51/d7b6e5978e3f042f52e875005925e51b
●keys_zone:强制参数,定义共享内存区的名称和大小,该共享内存用于保存缓存项目的元数据(所有活动的key和缓存数据相关的信息),这样nginx可以快速判断一个request是否命中或者未命中缓存,1m可以存储8000个key,10m可以存储80000个key。
●inactive:删除指定时间内未被访问的缓存文件,默认10分钟。
●max_size:设置了缓存存储的上限,如果不指定,最大会用掉所有磁盘空间。
●use_temp_path:直接把临时文件放在缓存目录中。
#####################################################

   upstream cache_server{server 192.168.80.20:80;server 192.168.80.30:80;}server {listen 80;server_name www.kgc.com;location / {proxy_cache my_cache;               #指定用于页面缓存的共享内存,zone名称由proxy_cache_path指令定义proxy_cache_valid 200 5m;           #为不同的响应状态码设置不同的缓存时间,此为缓存状态码为200的请求,缓存时长为5分钟proxy_cache_key $request_uri;       #指定缓存文件的key为请求的URIadd_header Nginx-Cache-Status $upstream_cache_status      #把缓存状态设置为头部信息,响应给客户端proxy_pass http://cache_server;     #设置代理转发的后端服务器的协议和地址}}
}

浏览器页面查看

状态码

expired:过期

miss:未缓存

hit:已缓存

2.2 重要页面不缓存

#对于一些实时性要求非常高的页面或数据来说,就不应该去设置缓存,下面来看看如何配置不缓存的内容。
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
server {listen 80;server_name cache.lion.club;#URI 中后缀为 .txt 或 .text 的设置变量值为 "no cache"if ($request_uri ~ \.(txt|text)$) {set $cache_name "no cache"}location / {proxy_no_cache $cache_name;      #判断该变量是否有值,如果有值则不进行缓存,如果没有值则进行缓存proxy_cache my_cache;            #设置缓存内存proxy_cache_valid 200 5m;        #缓存状态为200的请求,缓存时长为5分钟proxy_cache_key $request_uri;    #缓存文件的key为请求的URIadd_header Nginx-Cache-Status $upstream_cache_status    #把缓存状态设置为头部信息,响应给客户端proxy_pass http://cache_server;  #代理转发}
}

测试,状态码为miss

查看页面是否出现404,状态码为miss

3 CDN

3.1 CDN的概念

CDN的全称是(Content Delivery Network),即内容分发网络。其目的是通过现有的Internet中增加一层新的CACHE(缓存)层,将网站的内容发布到最接近的用户的网络“边缘”的节点,使用户可以就近去的所需的内容,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因,提高用户访问网站的响应速度。

简单地说,CDN的工作原理就是将您源站的资源混存到位于全球各地的CDN节点上,用户请求资源时,就近返回节点上缓存的资源,而不需要每个用户的请求都回您的源站获取,避免网络阻塞、缓解源站压力,保证用户访问资源的速度和体验。

3.1 CDN原理

在最接近用户网络“边缘”增加一层CDN缓存代理服务器,将源站点的内容发布到CDN节点,可以使用户就近取得所需的内容,从而提高用户访问网站的响应速度。

工作原理

将源站点(web应用服务器)的静态网页资源缓存到CDN节点上,用户请求资源时,就近返回CDN节点上缓存的资源,而不需要每个用户的请求都从源站点获取。从而避免网络拥塞,缓解源站点的压力,保证用户访问资源的速度和体验。

3.2 CDN的内容如何获取

1)对于热点资源,定时做缓存预热。

2)如果CDN节点没有,会从上游服务器或源站点获取资源,并同步到CDN节点的缓存中。

相关文章:

缓存代理服务器

1 缓存代理 1.1 缓存代理的概述 web代理的作用 缓存网页对象,减少重复请求 存储一些之前被访问的或且可能将要备再次访问的静态网页资源对象,使用户可以直接从缓存代理服务器获取资源,从而减少上游原始服务器的负载压力,加快整…...

四道面试题

一.网络的七层模型 网络的七层模型,也被称为OSI七层协议模型,是一种用于理解和描述网络通信过程的概念模型。这个模型将网络通信过程划分为七个层次,从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层…...

BRC20 技术分析

文章目录 什么是 BRC20 ?brc20 白皮书。重点基于链上数据解析获取交易详情返回值如何将 16 进制转换为 字符串没有节点,如何获取数据?见证隔离如何解析出 BRC20 数据?最后如何快速搭建节点BRC20 Indexer...

【Unity】Timer计时器属性及使用

可以代替协程完成延时操作 可以不用Update进行计时 GitHub开源计时插件 网址:https://github.com/akbiggs/UnityTimer/tree/master 导入:URL:https://github.com/akbiggs/UnityTimer.git 基本功能: 创建计时器: Time…...

Salesforce lightning优势介绍

今天我要给大家说说,Salesforce的两个版本:第一代Classic UI,和13年以来为迎接移动化趋势而推出的新Lightning UI。Classic马上就要和我们说88了,那Lightning究竟有哪些大杀器让我们无法抗拒呢?让我们一探究竟吧。 首先…...

leaflet学习笔记-贝塞尔曲线绘制(八)

前言 两点之间的连线是很常见的,但是都是直直的一条线段,为了使连线更加平滑,我们可以使用曲线进行连线,本功能考虑使用贝塞尔曲线进行连线绘制,最后将线段的两端节点连接,返回一个polygon。 贝塞尔简介 …...

42-单双多路分支,嵌套分支,switch分支,for循环,for in,while,do while,break,continue

js流程控制,代码的执行机制:顺序控制,分支控制,循环控制 1.顺序控制:就是按照代码的书写顺序,自上而下执行 2.分支控制 2.1单路分支 // 单路分支// if(条件表达式){// 执行代码// }// 如果条件表达式满…...

CNCF之CoreDNS

目前我们学习云原生技术,就不得不去了解CNCF,即Cloud Native Computing Foundation,云原生计算基金会,它的宣言或理念是: The Cloud Native Computing Foundation (CNCF) hosts critical components of the global tec…...

MySQL一主一从读写分离

​ MySQL主从复制 一、主从复制概念 主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从服务器中,然后在从服务器上对这些日志重新执行也叫重做,从而使得从数据库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进行赋值,从…...

【学术会议】第三届神经计算青年研讨会 学习笔记

第三届神经计算青年研讨会 学习笔记 会议时间:2024-1-6至2024-1-7 会议地点:电子科技大学 会议介绍: 为提升我国神经计算⻘年研究队伍的学术⽔平和国际影响⼒,研讨会主题涵盖:神经系统建模与模拟、脑机接⼝与类脑智能、…...

[C#]使用winform部署PP-MattingV2人像分割onnx模型

【官方框架地址】 https://github.com/PaddlePaddle/PaddleSeg 【算法介绍】 PP-MattingV2是一种先进的图像和视频抠图算法,由百度公司基于PaddlePaddle深度学习框架开发。它旨在提供更精准和高效的图像分割功能,特别是在处理图像中的细微部分&#xf…...

回顾2023,立2024flag

文章目录 回顾2023与CSDN相识专栏整理数据回顾 立2024flag 回顾2023 在过去的一年里,前端技术不断演进和创新。新技术、新框架层出不穷,给前端工程师提供了更多选择和挑战。2023年已经成为过去,回首这一年,我们也经历了许多挑战和…...

【PostgreSQL创建索引的锁分析和使用注意】

1.1 创建普通B-tree索引的整体流程 如下是梳理的创建普通B-tree索引的大概流程,可供参考。 1.校验新索引的Catalog元数据|语法解析 ---将创建索引的sql解析成IndexStmt结构|校验B-Tree的handler -----校验内核是否支持该类型的索引,在pg_am中查找&q…...

什么是云安全?如何保护云资源

云计算允许组织通过互联网按需向其客户、合作伙伴或员工提供关键业务应用程序、服务和资源。换句话说,不再需要物理维护资源。每当您通过 Internet 从计算机访问文件或服务时,您都是在访问云。 迁移到云可以帮助企业增强安全性、简化运营并降低成本。企…...

Android可换行的RadioGroup

Android可换行的RadioGroup,有时候需要换行显示的单选列表,当然可以有多种实现方式,比如recycleview或者listview实现,本文采用的是RadioGrouprediobutton方式实现。 一、首先自定义view public class WrapRadioGroup extends RadioGroup {pr…...

【ASP.NET Core 基础知识】--环境设置

一、简介 1.1 .NET Core SDK 概述 .NET Core SDK(Software Development Kit)是Microsoft推出的一个开源跨平台框架,用于开发和部署.NET应用程序。它是.NET Core平台的核心组件之一,为开发者提供了在多个操作系统上构建高性能、可…...

docker/华为云cce 部署nacos 2.3.0 集群模式

镜像地址 https://hub.docker.com/r/nacos/nacos-server 版本 nacos/nacos-server:v2.3.0-slim 关键环境变量 使用mysql数据源 变量值备注MODEcluster启用集群模式MYSQL_SERVICE_DB_NAME数据库名MYSQL_SERVICE_USER数据库用户名MYSQL_SERVICE_PASSWORD数据库密码SPRING_D…...

Doris 数据模型—Aggregate 模型

Doris 数据模型—Aggregate 模型 文章目录 Doris 数据模型—Aggregate 模型基本概念Aggregate 模型示例1:导入数据聚合示例2:保留明细数据示例3:导入数据与已有数据聚合Aggregate 模型限制Aggregate 模型使用场景本文主要从逻辑层面,描述 Doris 的数据模型,以帮助用户更好…...

数据库管理-第130期 JSON二元性(20240109)

数据库管理130期 2024-01-09 第130期 JSON二元性(20240109)1 简介2 关系型表和JSON存储的优劣3 Oracle JSON关系型二元性视图总结 第130期 JSON二元性(20240109) 上周,又双叒飞了一趟上海,也是2024年第一飞…...

k8s--动态pvc和pv

前情回顾 存储卷: emptyDir 容器内部,随着pod销毁,emptyDir也会消失 不能做数据持久化 hostPath:持久化存储数据 可以和节点上目录做挂载。pod被销毁了数据还在 NFS:一台机器,提供pod内容器所有的挂载点…...

从理论到实践:手把手教你用MATLAB构建LSSVR代理模型

1. 代理模型与LSSVR基础认知 第一次接触"代理模型"这个概念时,我正被一个汽车悬架优化项目折磨得焦头烂额——每次修改参数都要运行长达6小时的有限元仿真。直到导师扔给我一篇关于LSSVR的论文,才真正体会到什么叫"山重水复疑无路&#x…...

OpenClaw更新操作

文章名称 目录文章名称前言一、OpenClaw更新26.3.31版本二、飞书更新26.3.31版本我的龙虾日记前言 OpenClaw由于每个版本都有大量内容,更新的时候会出很多问题。记录一下出现过的问题 一、OpenClaw更新 推荐采用重装的方式进行更新,由于会进行新手教程.如果你不想再…...

“AI人工智能+”政务一网通办多智能体协同建设方案:五层两体系总体架构、数据与安全体系、信创适配与实施运维

该方案是一份成熟的技术蓝图,它不仅仅是将AI简单叠加到政务系统,而是通过“多智能体协同”重构了业务组织逻辑。方案详细定义了从语料治理、模型微调、Agent协作、信创适配到安全合规的全链路工程细节,具有极强的实操性与前瞻性,适…...

WeChatExporter:免费开源工具,三步轻松备份你的微信聊天记录到电脑

WeChatExporter:免费开源工具,三步轻松备份你的微信聊天记录到电脑 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否担心过手机丢失、系统崩…...

Python 学习笔记:学习路线图规划

1989 年的圣诞节期间,时任荷兰数学和计算机科学研究学会(CWI)研究员的 Guido van Rossum[1] 决定基于 ABC 语言设计并实现一门新的脚本编程语言,最初目的是用于替代 Unix shell 和部分 C 程序,以承担 Amoeba 分布式操作…...

不花一分钱!用闲置电脑搭建永久Mac远程控制台(VNC+cpolar固定TCP教程)

零成本打造24小时在线的Mac远程开发环境 你是否有一台闲置的Mac电脑放在角落积灰?或者需要随时随地访问家里的开发环境?将旧Mac改造成全天候在线的远程工作站,不仅能充分利用闲置资源,还能为移动办公提供极大便利。本文将手把手教…...

SAP MM进阶:解密DESADV IDoc如何打通公司间STO的‘任督二脉’

SAP MM进阶:DESADV IDoc在公司间STO流程中的核心作用解析 在集团化企业的供应链管理中,公司间库存转储订单(STO)的高效执行往往决定着整个供应链的响应速度。当货物从发货方仓库运出时,如何确保收货方能实时获取发货信…...

VibeVoice API接口调用案例:WebSocket流式通信实测

VibeVoice API接口调用案例:WebSocket流式通信实测 1. 项目概述 VibeVoice 是一个基于微软开源模型的实时语音合成系统,能够将文本内容快速转换为高质量的语音输出。这个系统特别适合需要实时语音交互的应用场景,比如语音助手、有声读物制作…...

Ubuntu 20.04 下 LVI-SAM 复现全记录:从 gtsam 版本踩坑到 OpenCV 头文件修改

Ubuntu 20.04 下 LVI-SAM 复现实战:从 gtsam 版本适配到 OpenCV 接口升级全解析 在机器人感知与定位领域,LVI-SAM 作为融合激光雷达与视觉信息的 SLAM 系统,因其优异的实时性和鲁棒性备受关注。然而其复杂的依赖环境配置常常让开发者陷入&quo…...

AI赋能浏览器:通过快马平台生成智能扩展,实现网页内容自动总结与代码智能解释

最近在做一个很有意思的尝试:用AI给浏览器装上"智能大脑"。具体来说,是开发一个谷歌浏览器扩展,能够智能分析网页内容。这个扩展最酷的地方在于,它能自动识别你选中的是普通文本还是代码,然后分别给出摘要总…...