1. 梦飞科技 > 中国IDC > 数据中心 > 整机柜服务器 >
  2. 如何对Web服务器进行飓风级防御(2)

如何对Web服务器进行飓风级防御(2)

万一你的网站被DDOS飓风式攻击,你会怎么办?笔者以经验告诉你,这里的每一层都起着保护网站的作用。如果您宁愿拥有如何在单台服务器上维持大量流量的版本,则可以:

专用硬件服务器,无共享主机

千兆上行链路处理突发流量

用大量RAM清漆缓存

插件轻WordPress安装

通过WordPress/Jetpack的离线统计

Cloudflare作为CDN

现在,让我们来看看细节。

托管和软件

从硬件开始,WEB最好存在于专用物理服务器上,而不是虚拟专用服务器(VPS)。这不是共享主机设置,它不是基于云的。该服务器配备四核至强E3-1230CPU,16GB内存和镜像R1固态硬盘。它通常运行在100Mbps的上行链路上,但是一旦风暴流量可能发生变化,我们就会抢先将其升级到1Gbps上行链路。额外的容量对于处理Eric和他的工作人员的新帖子的巨大爆发量非常重要。

该机器运行UbuntuServer16.04LTS,并且是“非托管”的,即没有安装cPanel或其他“简单模式”管理工具。这可以最大限度地减少服务器的攻击面,并有助于节省资源。为了运行我的托管站点,已安装的软件保持在必要的最小应用程序集内。

服务器堆栈的两大目标是让所有托管站点使用HTTPS,并让所有托管站点利用缓存;这提出了一些鸡与鸡的问题,因为缓存加密流量比缓存未加密流量复杂得多。原因是加密的流量是完全被加密的。同一页面的两个加密副本看起来像不同的随机噪声块。这对高速缓存提出了挑战,它依赖于存储一个副本并反复提供。

对付它的办法是做加密以上的高速缓存层。这样,Web服务器仍然可以缓存内容并通过HTTPS加密。就缓存而言,该网站只是运行普通的HTTP。

实际上,我通过使用HAProxy终止所有站点的SSL/TLS连接来实现此目的,这是一个七层感知负载平衡器应用程序。HAProxy监视TCP端口443上的传入HTTPS连接,读取SNI信息,为请求的站点提供适当的SSL/TLS证书,并执行SSL/TLS握手,然后将连接沿着堆栈传递给Varnish,缓存应用程序。另外,HAProxy还会侦听TCP端口80上的传入HTTP连接,并将其重定向到端口443,从而将所有流量强制转换为HTTPS。

HAProxy下面是秘密武器:清漆。Varnish是一种反向代理和缓存应用程序,旨在直接从RAM中提供静态资产,这比直接向文件系统层提供服务要快得多(尽管这里有一个全面的讨论兔子洞,当你在Linux的页面缓存机制中混合使用时,文件真的存在)。以下是缓存如何工作的简短版本,以及它为什么帮助SpaceCityWeather。当WordPress提供页面时,通常该页面是由WordPress应用程序动态生成的。通常,每次从WordPress请求页面时(无论是博客的首页还是帖子的页面或类别页面或任何其他页面),该页面将从各种元素中以编程方式从头开始组装,并且为每位访客提供热和新鲜的服务。想想WordPress就像一个面包师,忙着在厨房做牛角面包。每一位参观者都会得到自己特别为他们制作的温暖,酥脆的羊角面包。

这意味着当你的WordPress网站有很多流量时,面包师会变得非常忙碌。一条线形成。人们不得不等待他们的羊角面包。谁喜欢等羊角面包?有时你现在需要一个牛角面包。添加像Varnish这样的缓存应用程序意味着面包师只需制作一个牛角面包。那个牛角面包还需要一些时间才能制作,但一旦制成,面包师就可以将它放入一个神奇的羊角面包复制盒。按下按钮后,盒子立即(并非瞬间,但非常,非常快)弹出一个新月形面包的副本。只要人们只需要那种牛角面包,面包师就可以按下按钮,递出牛角面包,然后继续帮助下一位顾客。

当然,魔术盒不能制作不同的羊角面包。面包师仍然必须这样做。但贝克只需要花费的时间,使一个东西,然后魔术盒(几乎)可以立即发送给任何人谁想要它的那个副本,让自由地做其他的东西面包师。对于太空城天气,Varnish处理了绝大多数流向服务器的流量,因为大多数人想要查看网站的首页或最新的更新帖子。因为从缓存中提供服务的对象比从头开始服务要快得多(从服务器负载的角度来看,缓存中服务的内容几乎是“免费的”),因此Varnish是允许SpaceCityWeather扩展到多于一个的关键组件之一通常的日常负载的100倍,而不会被要求服务的请求数量所淹没。

(责任编辑:梦飞科技)

扫描二维码

关注梦飞科技最新资讯