Nginx和CDN运用

一.Web缓存代理

1.工作机制
  • 代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址。
  • 将获得的网页数据(静态Web元素)保存到缓存中并发送给客户机,以便下次请求相同的数据时快速响应**。**
2.代理服务器的概念
  • 代理服务器是一个位于客户端和原始(资源)服务器之间的服务器,为了从原始服务器取得内容,客户端向代理服务器发送一个请求并指定目标原始服务器,然后代理服务器向原始服务器转交请求并将获得的内容返回给客户端。
  • 缓存代理对于Web至关重要,尤其对于大型高负载Web站点。缓存可作为性能优化的一个重要手段,可以极大减轻后端服务器的负载。通常对于静态资源,即较少经常更新的资源,如图片,css或js等进行缓存,从而在每次刷新浏览器的时候,不用重新请求,而是从缓存里面读取,这样就可以减轻服务器的压力。
3.代理服务器的作用
  • 存储一些之前给访问过的,且可能要被再次访问的静态网页资源对象,使客户端可以直接从缓存代理服务器获取资源,从而减少上游源服务器的负载压力,加快网站的整体访问速度。
  • 代理服务器还可以代替客户端去获取源服务器的资源,从而隐藏客户端的真实地址。
4.常见的Web缓存代理应用
  • 本地实现 Nginx Squid Varnish
  • 云环境远端实现 CDN
  • 数据库缓存代理:Redis Memcached

二.Nginx缓存代理部署

准备三台服务器都安装Nginx

  • 192.168.86.10
  • 192.168.86.20
  • 192.168.86.30
1.初始化操作
复制代码
systemctl stop firewalld
setenforce 0
2.上传Nginx yum源安装Nginx
复制代码
cd /etc/yum.repos.d/
rz -E 上传Nginx yum源
yum install -y nginx
systemctl enable --now nginx
3. 准备测试界面
复制代码
systemctl enable --now nginx

cd /usr/share/nginx/html/
vim test.html

#然后上传一张图片

192.168.86.20:

页面测试:

192.168.86.20

页面测试:

关闭两台服务器长连接

复制代码
vim /etc/nginx/nginx.conf
4.设置Nginx缓存服务器配置(192.168.86.10)
复制代码
mkdir /data/nginx/cache -p
chown nginx:nginx /data/nginx/cache/

vim /etc/nginx/nginx.cnf
添加配置:
proxy_cache_path /data/nginx/cache levels=1 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;

定义服务器池:
upstream webservers {
    server 192.168.86.20:80;
    server 192.168.86.30:80;
{
复制代码
vim /etc/nginx/conf.d/default.conf

三.CDN

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

作用:
  • 在最接近用户的网络边缘增加一层CDN缓存代理服务器,将源站点服务器的内容发布到CDN做缓存,可以使用户就近取得所需的内容,从而提高用户访问网站的响应速度。
  • 总结一句话为CDN能够给Web网站内容做缓存,还可降低网络延迟。
工作原理:
  • 先将源站点服务器的静态网页资源缓存到CDN节点上,用户请求资源时,通过与DNS的配合,再根据用户的IP地址和请求的URL,找到最靠近用户的CDN节点,然后CDN节点会将资源数据快速地分发给用户,使每用户的请求不需要都从源站点服务器获取。从而避免了网络拥塞,降低了源站点服务器的负载压力,提高用户访问资源的速度和体验。
CDN的内容是如何获取到的?
  • 让用户直接访问资源,如果CDN有资源则可以命中缓存并直接响应返回给用户;如果没有命中到缓存则会将请求发送给上游源站点服务器获取资源,并同步到CDN的缓存中
  • 对于热点资源,可以先做缓存预热,再让用户访问资源,即可命中CND中的缓存并直接响应返回给用户
相关推荐
SelectDB18 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
zzzzzz3102 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220703 天前
如何搭建本地yum源(上)
运维
ping某4 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
大树886 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠6 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质6 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz6 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工6 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信