xiaoyi's blog
首页
  • 后端文章

    • PHP
  • 学习笔记

    • 《Git》学习笔记
  • MySQL
  • NoSQL
  • 中间件
  • Linux
  • Nginx
  • 网络
  • Mac
  • 学习笔记

    • 《Nginx》学习笔记
  • 学习
  • 博客搭建
  • 技术文档
  • GitHub技巧
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub

xuexuguang

后端新秀
首页
  • 后端文章

    • PHP
  • 学习笔记

    • 《Git》学习笔记
  • MySQL
  • NoSQL
  • 中间件
  • Linux
  • Nginx
  • 网络
  • Mac
  • 学习笔记

    • 《Nginx》学习笔记
  • 学习
  • 博客搭建
  • 技术文档
  • GitHub技巧
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub
  • 学习

  • GitHub技巧

  • 面试

    • 面试问题集锦
    • PHP基础
    • 正则表达式
    • PHP文件操作
    • PHP会话控制
    • 自定义函数及内置函数
    • MVC对比
    • linux
    • MySQL数据库基础
    • MySQL创建高性能的索引
    • MySQL的SQL优化
    • MySQL的高可扩展和高可用
    • MySQL安全
    • 常见算法
    • 常见数据结构
    • 高并发解决方案
    • 流量优化
    • 浏览器缓存和数据压缩
    • 图片优化
      • 什么是CND?
      • 使用CDN的优势是什么?
      • CDN的工作原理
        • 传统访问
        • 使用CDN访问
      • CDN的适用场景
      • CDN的实现
      • 独立的必要性
      • 为什么采用独立的域名?
      • 独立后的问题?
        • 如何进行图片上传和图片同步
    • 静态化处理
    • 动态语言并发处理
    • 数据库缓存优化
    • 负载均衡
  • 博客搭建

  • 心情杂货

  • 技术文档

  • 实用技巧

  • 友情链接
  • 更多
  • 面试
xuexuguang
2020-12-31

图片优化

# CDN加速

# 什么是CND?

CND的全称是Content Delivery Network,即内容分发网络,尽可能的避开互联网上有可能影响数据网络传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。 在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络。

CDN系统能够实现根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。

比如说,现在我们有个网站,服务器是在北京,用户群体也都集中在北京,如果想在深圳访问的话,这个时候我们在深圳建立一个CDN节点,深圳的用户访问的时候CDN系统会根据网络流量等信息将用户请求重定向到深圳的服务器上,从而达到请求的快速响应。

# 使用CDN的优势是什么?

  1. 本地Cache加速,提高了企业站点(尤其含有大量图片和讲台页面站点)的访问速度
  2. 跨运营商的网络加速,保证不同网络的用户得到良好的访问质量。
  3. 远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器
  4. 自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻原站点WEB服务器负载等功能
  5. 广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效的预防黑客入侵

# CDN的工作原理

# 传统访问

  1. 用户在浏览器输入域名,发起请求
  2. 解析域名获取服务器IP地址
  3. 根据IP地址找到对应的服务器
  4. 服务响应并返回数据

# 使用CDN访问

  1. 用户发起请求
  2. 智能DNS的解析(根据IP判断地址位置、接入网类型、选择路由最短和负载最轻的服务器)
  3. 取得缓冲服务器的IP
  4. 如果缓冲服务器有内容,把内容返回给用户
  5. 如果没有则向源站发起请求
  6. 将结果返回给用户
  7. 将结果缓冲到缓冲服务器

工作原理图如下:

# CDN的适用场景

  1. 站点或者应用中大量静态资源的加速分发,例如:CSS,JS,图片和HTML
  2. 大文件下载
  3. 直播网站

# CDN的实现

  1. BAT等都有提供CDN服务
  2. 可用LVS做4层负载均衡
  3. 可用Nginx、Varnish做七层负载均衡
  4. 使用squid或者Nginx做反向代理

# 独立图片服务器的部署

# 独立的必要性

  1. 分担Web服务器的I/O负载,将耗费资源的图片服务分离出来,提高服务器的性能和稳定性。
  2. 方便专门的对图片服务器进行优化,为图片服务设置有针对性的缓冲方案,减少带宽成本,提高访问速度
  3. 提高网站的可扩展性,通过增加图片服务器,提高图片的吞吐能力

# 为什么采用独立的域名?

  1. 同一域名下浏览器的并发连接数 有限制(通常为2-6个),突破浏览器的并发连接数的限制
  2. 由于cookie原因,对缓冲不利,大部分Web Cache都只缓冲不带cookie的请求,导致每次图片都没法命中Cache

# 独立后的问题?

# 如何进行图片上传和图片同步

  1. NFS共享方式
  2. 利用FTP同步
编辑
#高并发面试题
上次更新: 2020/12/31, 06:55:18
浏览器缓存和数据压缩
静态化处理

← 浏览器缓存和数据压缩 静态化处理→

最近更新
01
MVC对比
12-31
02
负载均衡
12-31
03
数据库缓存优化
12-31
更多文章>
Theme by Vdoing | Copyright © 2020-2020 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式