web项目 day03(六)

Nginx , CDN 和 云存储

Nginx

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

处理静态文件,索引文件以及自动索引;打开文件描述符缓冲。
Nginx 处理静态资源速度非常快, 并且自身还带有缓存.
但需要注意, 分布式部署的多台 Nginx 服务器上, 静态资源需要互相同步

无缓存的反向代理加速,简单的负载均衡和容错。

扩展 :
在开发环境,Django的settings .py文件中的设置DRBUG=True,在项目上线后,由开发环境变为生产环境,DEBUG =False,如果不使用Nginx代理静态文件,那么所有的静态文件都无法展示,页面中返回的状态码都是404,
这是Django本身的机制决定的,开发环境下,接口传输流量小,Django可以支持,但是生产环境下,接口传输的流量庞大,这时候就需要用Nginx进行代理

使用一台Nginx服务器来部署静态文件,如果Nginx,静态文件和Django都在同一台服务器上,那么它们将共享该服务器的带宽,当用户访问量大的时候,静态文件传输流量也就变的很大,所占带宽的比例也就变得很大,此时Django服务所用的带宽就变得很小
如何解决这个问题?

  1. 将静态文件单独部署到另一台服务器上,使用Nginx去管理
  2. 使用多台Nginx来管理静态文件,每台Nginx管理的静态文件内容都需要一模一样,做到静态文件的资源的同步

CDN

CDN 的全称是 Content Delivery Network, 即内容分发网络
它依靠部署在各地的边缘服务器, 通过中心平台的负载均衡、内容分发、调度等功能模块, 使用户就近获取所需内容, 降低网络拥塞, 提高用户访问响应速度和命中率. CDN 的关键技术主要有内容存储和分发技术.

我们刷抖音,看直播,看B站等,这些内容都涉及到了CDN技术,如果CDN技术不成熟,那么看直播,刷抖音都会很艰难
那么CDN技术到底是什么?概念可能比较难理解,举个简单的例子

假设有个网站,公司地址在广州,服务器也在广州,那么在广州访问该网站和在北京访问该网站,势必速度是不一样的,假设都是通过光纤获取数据,数据传输到广州本地和北京,绝对是广州获取数据的速度快,
如果在北京设置一个镜像站,(该镜像站有广州源站的所有资源,且源站信息改变,镜像站的资源也改变)那么北京的用户访问该网站的候,CDN中的机制就会进行调度不必访问广州的源站,只需要访问北京的镜像站,假设很多地方都有这样的镜像站,那么各地的用户访问该网站时,会先访问离自己位置最佳的镜像站(如果离自己最近的镜像站出了问题,那么就会访问离自己位置第二近的镜像站),这叫异地多活

访问步骤:
1、用户访问:www.baidu.com
2、DNS 服务器解析 www.baidu.com,返回 CNAME (CDN 厂商分配的 CDN 服务域名)
3、用户通过 CNAME (CDN 厂商分配的 CDN 服务域名),访问静态资源
4、CDN 厂商根据用户 IP 地址,返回访问速度最快,或距离最近的 镜像站 IP
5、用户访问 镜像站 IP 及 镜像站资源,获得最佳访问体验

云存储

云存储是一个远程平台,通过高度虚拟化的多租户基础设施为企业供应可扩展的存储资源,可根据组织的要求动态配置。
现在一般都不将静态资源存储到本地服务器,而是上传到云存储。
企业通过互联网连接的一个或多个数据服务器。企业利用互联网以人工或自动方式把文件发送到数据服务器,数据服务器又把相关信息转发到多个服务器。最后,通过基于Web界面访问存储的数据。云存储系统拥有大量数据服务器,来确保它的可用性。这样的好处在于:如果一台服务器需要维护或失败,数据可以在其他地方复制,确保可用性。
云存储内部有相应的机制,可供用户流畅得访问云存储中的静态资源。

如果一个网站用户访问的流量传输比较小,用户访问网站的静态文件,云存储就足够
如果用户访问量大,那么云存储就可以和CDN结合起来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值