python开源网站源码,制作网站的公司做网站去哪里找,企业网站设计总结,自适应企业建站企业一、代理的工作机制
1#xff0e;代替客户机向网站请求数据#xff0c;从而可以隐藏用户的真实IP地址。 2#xff0e;将获得的网页数据#xff08;静态 Web 元素#xff09;保存到缓存中并发送给客户机#xff0c;以便下次请求相同的数据时快速响应。
二、代理服务器的…一、代理的工作机制
1代替客户机向网站请求数据从而可以隐藏用户的真实IP地址。 2将获得的网页数据静态 Web 元素保存到缓存中并发送给客户机以便下次请求相同的数据时快速响应。
二、代理服务器的概念
代理服务器是一个位于客户端和原始资源服务器之间的服务器为了从原始服务器取得内容客户端向代理服务器发送一个请求并指定目标原始服务器然后代理服务器向原始服务器转交请求并将获得的内容返回给客户端。
缓存代理对于Web至关重要尤其对于大型高负载Web站点。缓存可作为性能优化的一个重要手段可以极大减轻后端服务器的负载。通常对于静态资源即较少经常更新的资源如图片css或js等进行缓存从而在每次刷新浏览器的时候不用重新请求而是从缓存里面读取这样就可以减轻服务器的压力。
三、代理服务器的作用
资源获取代替客户端实现从原始服务器的资源获取加速访问代理服务器可能离原始服务器更近从而起到一定的加速作用缓存作用代理服务器保存从原始服务器所获取的资源从而实现客户端快速的获取隐藏真实地址代理服务器代替客户端去获取原始服务器资源从而隐藏客户端真实信息。
四、常用的代理服务器
squid、nginx、varnish、CDN CDN在云场景中 使用比较多 大量广泛使用 Squid和varnish 传统应用 用得不多 性能上Squid和varnish比较好 但是nginx的管理更加方便 五、nginx缓存代理部署
代理服务器172.16.23.13
后端服务器172.16.23.14 172.16.23.15
骤一首先脚本完成三台nginx的部署 步骤二在两个后端原始服务器上分别创建测试页面
echo this is web02 /usr/local/nginx/html/test.html
vim /usr/local/nginx/conf/nginx.conf 步骤三完成nginx缓存服务器配置文件修改
进入/usr/local/nginx
mkdir -p /data/nginx/cache修改配置文件nginx.conf
http {proxy_cache_path /data/nginx/cache levels1:2 keys_zonemy_cache:10m max_size10g inactive60m use_temp_pathoff;#####################################################
●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 levels1:2; 代表缓存是二层目录有16*2564096个目录比如/data/nginx/cache/b/51/d7b6e5978e3f042f52e875005925e51b
●keys_zone强制参数定义共享内存区的名称和大小该共享内存用于保存缓存项目的元数据所有活动的key和缓存数据相关的信息这样nginx可以快速判断一个request是否命中或者未命中缓存1m可以存储8000个key10m可以存储80000个key。
●inactive删除指定时间内未被访问的缓存文件默认10分钟。
●max_size设置了缓存存储的上限如果不指定最大会用掉所有磁盘空间。
●use_temp_path直接把临时文件放在缓存目录中。
#####################################################upstream cache_server{server 172.16.23.14:80;server 172.16.23.15:80;}server {listen 80;server_name localhost;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; #设置代理转发的后端服务器的协议和地址}}
}
步骤四测试 第一次未击中缓存 第二次访问命中缓存直接返回缓存服务器缓存的结果内容不会切换 针对一些不需要缓存的数据如动态资源 #对于一些实时性要求非常高的页面或数据来说就不应该去设置缓存下面来看看如何配置不缓存的内容。
proxy_cache_path /data/nginx/cache levels1:2 keys_zonemy_cache:10m max_size10g inactive60m use_temp_pathoff;
server {listen 80;server_name cache.lion.club;#URI 中后缀为 .jsp 或 .php 的设置变量值为 no cacheif ($request_uri ~ \.(jsp|php)$) {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; #代理转发}
}详细可参考
https://blog.csdn.net/qq_34556414/article/details/106490874
https://blog.csdn.net/weixin_30795127/article/details/97385091#proxy_cache_path
六、CDN概念及作用
在最接近用户网络边缘的位置增加一层CDN缓存代理服务器将源站点的内容发布到CDN节点可以使用户就近取得所需的内容提高用户的访问响应速度。也避免了网络拥塞缓解了源站点的访问压力。
CDN 内容分发网络本质上就是一大堆遍布在全球各个角落的缓存服务器。通过与DNS 的配合找到最靠近用户的一台CDN缓存服务器然后把数据快速地分发给用户 通过 CDN技术我们不仅减少了对于整体骨干网的流量负担还提高了用户的访问速度。
6.1CDN的数据是如何获取的
1、对于热点资源一般定时做缓存预热2、对于冷门资源如果CDN没有会从上游服务器或源站点获取资源。在同步缓存在CDN节点中
6.2CDN工作原理
将源站点web应用服务器的静态网页资源缓存到CDN节点上用户请求资源时就近返回CDN节点上缓存的资源而不需要每个用户的请求都从源站点获取从而避免了网络拥塞缓解了源站点的压力提高用户访问资源的速度。
七、CDN的工作过程
1.浏览器发起静态资源URL请求经过本地 DNS 解析会将域名解析权交给域名 CNAME 指向的CDN 专用 DNS 服务器
2.CDN的 DNS 服务器将 CDN 的全局负载均衡设备IP 地址返回给浏览器
3.浏览器向 CDN 全局负载均衡设备发起 URL请求
4.CDN 全局负载均衡设备根据用户 IP 地址以及用户请求的 URL选择一台用户所属区域的区域负载均衡设备向其发起请求。
5.区域负载均衡设备会为用户选择最合适的 CDN 缓存服务器 (考虑的依据包括: 服务器负载情况距离用户的距离等) 并返回给全局负载均衡设备。
6.全局负载均衡设备将选中的CDN缓存服务器IP 地址返回给用户
7.用户向 CDN 缓存服务器发起请求缓存服务器响应用户请求最终将用户所需要偶的内容返回给浏览器。
使用 CDN 服务的网站只需要将域名解析权交给 CDN 服务商接着将需要分发的内容上传到CDN就可以实现内容加速了!