当前位置: 首页 > news >正文

大型网站提速方案

大型网站提速方案

如何判定一个网站是大型网站

    1. 高访问就是大网站?还是大流量是大型网站? 
      爱站:http://www.aizhan.com/ 
      站长工具:http://tool.chinaz.com/ 
      高访问网站:https://www.hao123.com

    2. 通过几个参数来判定一个大型网站

      a. PV(page views) :一个网站内所有页面,24小时内访问次数的总和。一般在100w,1000w以上

      b. UV(unique visitor):一个网站24小时内的独立访问用户。一般几十万以上

      c. IP(独立IP):一个网站24小时内访问的IP数,在考虑校园网、局域网的时候,UV数一般略大于IP数(局域网通过一个网关上网 
      多个用户只会记录一个独立IP)

      总结:PV > UV > IP

    3. 大型网站带来的问题

      a. 高并发:一般是1s内同时访问一个网站的数量

      b. 大流量:大量的用户访问网站,流量会变得很大

      c. 大数据:在访问量巨大的同时,带来的就是大量数据(G、T级别)的检索问题,如何在众多数据中检索出需要的数据

    4. 解决方案

      a. 高并发可以使用 分层来解决(负载均衡)

      1. 硬件:f5(优点:立竿见影;缺点:价格昂贵,20w左右)
      2. 软件:nginx(web服务器,负载均衡器),lvs
      3. nginx: http://www.nginx.cn/ http://tengine.taobao.org/ http://nginx.org/
      4. lvs(章文嵩): http://zh.linuxvirtualserver.org/
      5. 问题:什么是C10K问题?
      6. 负载均衡的策略:1. 轮询 2. NAT 3. 智能DNS
      7. 注意:对Apache实现了分流,但对Mysql,如何解决?同时,如何保证Apache,负载均衡器的高可用?
      8. 高可用可以使用冗余技术实现,添加一个监控服务器
      9. 软件:keepalive

      b. 大流量可以使用如下方案解决

      1. 1. 代码压缩 查看HTTP请求,Apache对主体数据进行压缩,开启Apachedeflate模块
      2. > http://blog.csdn.net/cctv_hu/article/details/6018942
      3. > http://www.webkaka.com/tutorial/server/2015/021013/
      4. 2. 合并文件,减少HTTP请求(js css),css图片背景的图片精灵(减少请求)
      5. > 合并工具: http://tool.oschina.net/jscompress?type=3
      6. 3. 使用CDN技术加载静态资源
      7. > 加速CDN服务: http://www.bootcdn.cn/
      8. 4. 将服务分散,图片服务器,电脑模块。将不同的模块部署到不同的服务器上面 (上传插件配置上传服务器地址)
      9. > PHP FTP 函数:http://www.w3school.com.cn/php/php_ref_ftp.asp
      10. 5. 升级带宽(100M带宽一年40w左右)

      c. 大数据可以使用缓存技术实现

      1. 1. 磁盘缓存(静态化):
      2. > 1. 真静态:在效率上,生成真实的html文件,将数据从数据库取出之后,生成的静态html保存到磁盘上面,直接访问静态页面就好。不用访问数据库,减轻数据库的压力
      3. > 2. 伪静态:在形式上,利用Apache的重写模块来实现 动态的url 转换成静态的url,便于seo(搜索引擎优化),可以防止sql注入
      4. 例如:
      5. 动态网站:http://www.php.com?new.php&type=sport&id=12
      6. 对应的静态网站:http://www.php.com?new-sport-id12.html
      7. 2. 内存缓存(Nosql技术,memcacheredismongodb):将Mysql取出的数据保存在内存服务器里面,下次请求的时候直接访问内存服务器
      8. 3. 数据库优化:
      9. 1. 设计上满足三范式
      10. 2. 字段上使用合适的属性
      11. 3. 合适的使用索引
      12. 4. 分区和分表
      13. 5. 主从复制(读写分离)
      14. 6. 硬件升级(scale up、还有scale out
      15. 7. sphinx存储引擎的使用

(本文转自 superve.leanote.com/post/大型网站提速方案)

 

转载于:https://www.cnblogs.com/Sillynoob/p/4854876.html

相关文章:

  • 【Struts2学习笔记(11)】对action的输入校验和XML配置方式实现对action的所有方法进行输入校验
  • 分享一百多套开发视频教程的下载地址
  • java中Object类 源代码详解
  • 史上最全Java学习视频下载地址分享
  • MySql 查询一周内最近7天记录
  • 【Struts2学习笔记(12)】Struts2国际化
  • 【Struts2学习笔记(13)】Struts2中OGNL详解
  • 【Struts2学习笔记(14)】Struts2标签元素
  • SSH2框架搭建Jar下载地址
  • hibernate.cfg.xml文件的配置模板和不同数据库的配置参数
  • EasyUI - LinkButton 按钮控件
  • Hibernate常见问题 No row with the given identifier exists问题的原因及解决
  • 最小的n个数(堆排序)
  • Hibernate核心类和接口详细介绍
  • Hibernate的各种保存方式的区别 (save,persist,update,saveOrUpdte,merge,flush,lock)等
  • 网络传输文件的问题
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 【347天】每日项目总结系列085(2018.01.18)
  • 【EOS】Cleos基础
  • 2019.2.20 c++ 知识梳理
  • happypack两次报错的问题
  • HashMap ConcurrentHashMap
  • input的行数自动增减
  • JavaScript创建对象的四种方式
  • Phpstorm怎样批量删除空行?
  • Protobuf3语言指南
  • Python十分钟制作属于你自己的个性logo
  • Python实现BT种子转化为磁力链接【实战】
  • vue脚手架vue-cli
  • Web设计流程优化:网页效果图设计新思路
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 和 || 运算
  • 区块链共识机制优缺点对比都是什么
  • 数组的操作
  • 微信开源mars源码分析1—上层samples分析
  • 做一名精致的JavaScripter 01:JavaScript简介
  • hi-nginx-1.3.4编译安装
  • ​香农与信息论三大定律
  • (26)4.7 字符函数和字符串函数
  • (4)Elastix图像配准:3D图像
  • (6)设计一个TimeMap
  • (python)数据结构---字典
  • (阿里云万网)-域名注册购买实名流程
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (正则)提取页面里的img标签
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .apk 成为历史!
  • .dwp和.webpart的区别
  • .NET CLR Hosting 简介
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .net core webapi 大文件上传到wwwroot文件夹
  • .net MySql
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET Windows:删除文件夹后立即判断,有可能依然存在