缓存代理服务器

一、代理的工作机制

1、代替客户机向网站请求数据,从而可以隐藏用户的直实IP地址

2、将获得的网页数据(静态 web 元素) 保存到缓存中并发送给客户机,以便下次请求相同的数据时快速响应

二、代理服务器的概念及其作用

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

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

其主要作用有

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

加速访问:代理服务器可能离原始服务器更近,从而起到一定的加速作用

缓存作用:代理服务器保存从原始服务器所获取的资源,从而实现客户端快速的获取

隐藏真实地址:代理服务器代替客户端去获取原始服务器资源,从而隐藏客户端真实信息

 三、常见的Web缓存代理应用

本地实现:Nginx  Squid  Varnish

云环境远端实现:CDN

数据库缓存代理应用:Redis  Memcached

四、Nginx 缓存代理配置

http {proxy_cache_path /data/nginx/data levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=3m use_temp_path=off;upstream cache_server{server 192.168.130.50:80;server 192.168.130.60:80;}server {listen 80;server_name localhost;location / {proxy_cache my_cache;proxy_cache_valid 200 3m;proxy_cache_key $request_uri;add_header Nginx-Cache-Status $upstream_cache_statusproxy_pass http://cache_server;}}
}

1、准备原始资源服务器的网页文件

2、编辑Nginx 配置文件

原始资源服务器:

代理服务器:

3、测试

在浏览器中访问缓存代理服务器的IP地址

五、CDN 内容分发网络

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

1、CDN工作原理

将源站点(Web应用服务器)的静态网页资源缓存到CDN节点上,用户请求资源时,通过与DNS的配合,找到最靠近用户的一台CDN缓存服务器,然后把资源数据快速地分发给用户,而不需要每个用户的请求都从源站点获取,从而避免网络拥塞、缓解源站点的压力,保证用户访问资源的速度和体验。

2、CDN的内容是如何获取的

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/338028.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3引用类型和基础类型深度克隆

深度克隆失效的一个例子 import { cloneDeep } from "lodash"; import { ref } from "vue";const navArr ref(["recommend","hot","new", ]) const list1: any ref([]) const list2: any ref([]) const list3: any ref(…

强化学习求解TSP(三):Qlearning求解旅行商问题TSP(提供Python代码)

一、Qlearning简介 Q-learning是一种强化学习算法,用于解决基于奖励的决策问题。它是一种无模型的学习方法,通过与环境的交互来学习最优策略。Q-learning的核心思想是通过学习一个Q值函数来指导决策,该函数表示在给定状态下采取某个动作所获…

【Spring 篇】注解之舞:Spring AOP的优雅表演

欢迎来到Spring的代码舞台,在这里,我们将沉浸在一场注解之舞的盛宴中。今天我们将探讨如何使用注解方式实现Spring AOP,一种优雅而富有表现力的编程技术。 AOP的魅力 在编程的舞台上,AOP(Aspect-Oriented Programmin…

CMU15-445-Spring-2023-Project #2 - 前置知识(lec07-010)

Lecture #07_ Hash Tables Data Structures Hash Table 哈希表将键映射到值。它提供平均 O (1) 的操作复杂度(最坏情况下为 O (n))和 O (n) 的存储复杂度。 由两部分组成: Hash Function和Hashing Scheme(发生冲突后的处理&…

[论文阅读]YOLO9000:Better,Faster,Stronger

摘要 我们引入了YOLO9000,一个可以检测超过9000种类别的先进的实时目标检测系统。首先我们提出了多种yolo检测方法的提升方式,既新颖又参考了 之前的工作。改进后的模型,YOLOV2在标准检测任务例如PASCAL VO 和COCO 上都取得了领先。使用一个…

每天学习一点点之 Spring Boot 1.x 升级 2.x 之 allowBeanDefinitionOverriding

最近组内大佬正在进行 Spring Boot 版本的升级,从 1.x 版本升级到 2.x 版本。在查看代码变更时,我注意到我之前编写的一个名为 ShardingRuleStrategy 的类被添加了 Primary 注解。这个类在原来的代码中被标记为 Component,同时也在 API 中被定…

Android开发基础(一)

Android开发基础(一) 本篇主要是从Android系统架构理解Android开发。 Android系统架构 Android系统的架构采用了分层的架构,共分为五层,从高到低分别是Android应用层(System Apps)、Android应用框架层&a…

Python基础知识:整理9 文件的相关操作

1 文件的打开 # open() 函数打开文件 # open(name, mode, encoding) """name: 文件名(可以包含文件所在的具体路径)mode: 文件打开模式encoding: 可选参数,表示读取文件的编码格式 """ 2 文件的读取 文…

Qt During startup program exited with code 0xc0000135

网上试了好多办法没有用,可以试试在pro目录下加入如图所示的.dll 可以下个everything搜索整个电脑查看是否有上述dll,如果没有也可以网上下载或者点击连接

文心大模型融入荣耀MagicOS!打造大模型“端云协同”创新样板

2024年1月10日,在荣耀MagicOS 8.0发布会及开发者大会上,荣耀终端有限公司CEO赵明宣布了“百模生态计划”,并与百度集团执行副总裁、百度智能云事业群总裁沈抖共同宣布,百度智能云成为荣耀大模型生态战略合作伙伴。 沈抖在现场演讲…

【UE Niagara学习笔记】05 - 喷射火焰顶部的蓝色火焰

在上一篇博客(【UE Niagara学习笔记】04 - 火焰喷射时的黑烟效果)的基础上继续实现在火焰喷射的起点位置生成蓝色火焰的效果。 目录 效果 步骤 1. 创建新的发射器 2. 减少粒子生成数量 3. 减小粒子初始大小 4. 减少粒子喷射距离 5. 减少粒子初始…

网络服务DHCP与DNS

一.DHCP 1.DHCP概念 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议) 通常被应用在大型的局域网络环境中,主要作用是集中地管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务…