zoukankan      html  css  js  c++  java
  • 记一次游戏服务器结构优化调整

      上周游戏服务器被DDos攻击了,服务器带宽瞬间拉满导致全部服务器宕机。于是对我们现有的服务器结构做了些优化和调整以应对攻击。

      先说说以前的服务器结构如图所示:

      以上只有一个接入服务器充当中转的作用。如果接入服务器宕机了,基本上全服都挂了。接入服务器的Access进程会判断如果是协议格式不正确的连接会主动断开连接,攻击者显然是研究了我们的协议格式,在客户端和逻辑服务器建立连接的情况下持续发送了大流量包导致了接入服务器的带宽撑爆,以至于导致全服都挂了。

      这个结构同样存在这瓶颈,一旦流量上来了接入服务器通用也会撑不住,因此趁着这次攻击的机会改造成了如下:

      相比旧的服务器结构,新增了一个入口服务器,以及增设了接入服务器。客户端连接过来首先进入了入口服务器,拉取想要进区服的区服列表,依据不同区服配置的不同域名和相应的接入服务器建立连接。入口服务器只保留最基本的服务器配置,游戏配置以及一些公告的配置。

      同时购买了阿里云的DDos防护包,入口服务器除了Ngix外不再有其他和游戏相关的进程,攻击者若想致使全服宕机攻击入口服务器需攻破阿里云的安全防护,难度增大。

      如果攻击者攻击接入服务器,需要同时拉满多个接入服务器的带宽,增加了攻击者的成本。另外在接入服务器的Access进程上我们也做了相关的流量检测,一经发现短时间内同一个连接的累计流量过大会主动断开连接。假如攻击者攻击接入服务器成功,入口服务器上配置的公告依旧能被玩家接收,可以及时通知玩家服务器状态。

      安心睡觉,撒花*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。

  • 相关阅读:
    ios开发常用工具集合网站
    xib自定义UIView报错误 "forUndefinedKey:]: this class is not key value coding-compliant for the key"
    IOS MJExtension json转模型的轻量级框架的使用(转载)
    升级Xcode之后VVDocumenter-Xcode不能用的解决办法
    iOS开发系列--并行开发其实很容易
    通讯录开发
    UIGestureRecognizer手势
    UIScrollView
    UIStepper
    UIPickerView
  • 原文地址:https://www.cnblogs.com/jialin0x7c9/p/13514750.html
Copyright © 2011-2022 走看看