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

搭建千万PV高可用系统—DNS

上一篇写到了 搭建高可用系统—机房架构,包括机房选择,网络架构,设备选型等,今天想写一下DNS负载均衡,流量是如何进入到机房的,实际建设中应该怎么选择,应该考虑哪些要点。

负载均衡主要包括,DNS,LVS,Nginx反向代理等。

其中DNS负载均衡:
1、首先域名的购买,万网在中国做到比较好的了也被纳入了阿里系,购买后可以直接在阿里云后台管理也很方便。不过我个人比较喜欢用DNSPOD去做解析,创始人吴洪声,大专学历,85年广东湛江人,2012年腾讯以4000万元收购DNSPod100%股权,也实现财务自由了吧,羡慕,但没有妒忌恨。

  • DNSPod 可以支持根据不同运营商解析到指定的IP,另外有个更好用的一个功能是D监控,在其中一个IP中断的时候,可以自动切换到指定的备用IP,这个是在DNSpod上面自动操作,对运维人员和Client是透明的,当然Client因为DNS缓存不能立马生效,免费版大概600s,普通商业版大概60s。但也起到较好的容灾效果。

2、中等以上规模的网站一般不会把域名直接解析到机房IP,若机房IP暴露出去以后,很容易遭受到DDOS***,并且基本没有很好的处理方法。
几个点:

  • 域名直接解析到机房IP会怎么样?
    ---相当于直接把家里的详细地址告诉***者,然后一万匹草泥马奔腾过来……哦哦

  • DDOS***可以用防火墙抗呀?
    ---SYNFlood、NTPFlood、CC等这种类型的DDOS***,还可以通过防火墙或者服务器策略本身进行一定抵抗,只要并发撑得住,或许也能抵挡得了,但是焦头烂额了。如果是UDP 流量***,抗也抗不住了,相当于***者把一大卡车沙子放在家门口,后面卡车还源源不断,这样你别想出来,其他人也别想进去了,没有任何办法,就是这么无赖。

  • UDP *** 机房不是可以处理吗?
    ---一般小的或者中立的机房带宽都是有限的,如果来个10G流量***,机房很可能会放弃你,避免影响其他客户。如果接连受***,机房顶不住,估计过两天就会强制要你搬走了。 大的运营商有高防服务器,比如电信带宽相对来说充足,可以帮你抵挡住,不过一般要按月计费费用不菲,这个成本也很高。

* 一般怎么做才适合?

  1. 购买有实力的厂家的高防服务,以前用过安全狗还可以,这个与购买运营商机房的高防服务差不多,一般按月算,成本也比较有点高。

2.曾经做过一套方案是,在阿里云上面开了两台Nginx做反向代理,把域名解析到这两台Nginx,然后再转到机房的IP上面去,这样可以把真实IP隐藏起来,另外开了两台ECS,日均几百W PV问题也不大,1K/月差不多,真遭受到***,阿里云有免费的抗DDOS服务,以前是5G内免费的,现在应该降低了,不过也基本够用了。一般来说,如果没有什么仇什么怨,也不会遭受几十G的***,真有什么仇什么怨的话,阿里云也可以支持按天付,成本比较低。

  • 这种方案要根据实际情况关注ESC并发是否撑得住,如果有瓶颈可以升级下资源,另外也可以在Nginx上面多加一层LVS,达到横向扩展高并发。
  • 由于采用阿里云的转发,会带来一定的延时,这个需要根据实际情况考虑地域延时的问题,Nginx ECS要选好适当的区域,避免造成教高延时。

3.总结来说,首先尽量不要暴露机房IP出去,其次如果购买DDOS高防服务,一定要买大厂的,最后在保证高可用的情况下,能帮老板省就省点吧。

转载于:https://blog.51cto.com/sportshao/2051372

相关文章:

  • eclipse再见,android studio 新手入门教程(一)基本设置
  • CentOS 7.2 安装jdk1.8.x版本
  • UVA 725 division【暴力枚举】
  • angularjs $$phase
  • 安装PHP5,安装PHP7
  • CSS 为什么这么难学?
  • sql server 索引总结一
  • 『TensorFlow』读书笔记_Word2Vec
  • Android UI进阶之旅15 SVG的使用
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • Android的一些命名规范
  • 零元学Expression Blend 4 - Chapter 13 用实例了解布局容器系列-「Pathlistbox」I
  • Spring源码系列-容器刷新
  • WPF用样式实现TextBox的虚拟提示效果
  • ReactiveCocoa学习
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • Angular数据绑定机制
  • go语言学习初探(一)
  • Java多线程(4):使用线程池执行定时任务
  • JS数组方法汇总
  • python docx文档转html页面
  • Python实现BT种子转化为磁力链接【实战】
  • quasar-framework cnodejs社区
  • Shell编程
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • Vue实战(四)登录/注册页的实现
  • 前嗅ForeSpider采集配置界面介绍
  • 微信小程序开发问题汇总
  • 微信支付JSAPI,实测!终极方案
  • 温故知新之javascript面向对象
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 通过调用文摘列表API获取文摘
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (转)项目管理杂谈-我所期望的新人
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • ./configure,make,make install的作用
  • .Net - 类的介绍
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET 分布式技术比较
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .net 验证控件和javaScript的冲突问题
  • .NET面试题(二)
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • .pyc文件是什么?
  • [ABC294Ex] K-Coloring
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [AI]文心一言爆火的同时,ChatGPT带来了这么多的开源项目你了解吗
  • [AutoSar]工程中的cpuload陷阱(三)测试