×

純干貨:對Web服務(wù)器進行颶風(fēng)級防御

  • 作者:新網(wǎng)
  • 來源:新網(wǎng)
  • 瀏覽:100
  • 2018-04-25 16:11:37

如果你的網(wǎng)站被DDOS颶風(fēng)式攻擊,你會怎么辦?小編以經(jīng)驗告訴大家,這里的每一層都起著保護網(wǎng)站的作用。如果各位朋友寧愿擁有在單臺服務(wù)器上維持大量流量的版本,則可以: 專用硬件服務(wù)器,無共享主機 千兆上行鏈路處理突發(fā)流量 用大量RAM清漆緩存 插件輕WordPress安裝 通過WordPress/Jetpack的離線統(tǒng)計 Cloudflare作為CDN 現(xiàn)在,讓我們一起來看看細節(jié)。

 如果你的網(wǎng)站被DDOS颶風(fēng)式攻擊,你會怎么辦?小編以經(jīng)驗告訴大家,這里的每一層都起著保護網(wǎng)站的作用。如果各位朋友寧愿擁有在單臺服務(wù)器上維持大量流量的版本,則可以:

 
146163b9301S0-136108(2).jpg
專用硬件服務(wù)器,無共享主機
 
千兆上行鏈路處理突發(fā)流量
 
用大量RAM清漆緩存
 
插件輕WordPress安裝
 
通過WordPress/Jetpack的離線統(tǒng)計
 
Cloudflare作為CDN
 
現(xiàn)在,讓我們一起來看看細節(jié)。
 
托管和軟件
 
從硬件開始,WEB最好存在于專用物理服務(wù)器上,而不是虛擬專用服務(wù)器(VPS)。這不是共享主機設(shè)置,它不是基于的。該服務(wù)器配備四核至強E3-1230CPU,16GB內(nèi)存和鏡像R1固態(tài)硬盤。它通常運行在100Mbps的上行鏈路上,但是一旦風(fēng)暴流量可能發(fā)生變化,我們就會搶先將其升級到1Gbps上行鏈路。額外的容量對于處理Eric和他的工作人員的新帖子的巨大爆發(fā)量非常重要。該機器運行UbuntuServer16.04LTS,并且是“非托管”的,即沒有安裝cPanel或其他“簡單模式”管理工具。這可以最大限度減少服務(wù)器的攻擊面,并有助于節(jié)省資源。為了運行我的托管站點,已安裝的軟件保持在必要的最小應(yīng)用程序集內(nèi)。
 
服務(wù)器堆棧的兩大目標是讓所有托管站點使用HTTPS,并讓所有托管站點利用緩存;這提出了一些雞與雞的問題,因為緩存加密流量比緩存未加密流量復(fù)雜得多。原因是加密的流量是完全被加密的。同一頁面的兩個加密副本看起來像不同的隨機噪聲塊。這對高速緩存提出了挑戰(zhàn),它依賴于存儲一個副本并反復(fù)提供。
 
對付它的辦法是做加密以上的高速緩存層。這樣,Web服務(wù)器仍然可以緩存內(nèi)容并通過HTTPS加密。就緩存而言,該網(wǎng)站只是運行普通的HTTP。
 
實際上,我通過使用HAProxy終止所有站點的SSL/TLS連接來實現(xiàn)此目的,這是一個七層感知負載平衡器應(yīng)用程序。HAProxy監(jiān)視TCP端口443上的傳入HTTPS連接,讀取SNI信息,為請求的站點提供適當(dāng)?shù)腟SL/TLS證書,并執(zhí)行SSL/TLS握手,然后將連接沿著堆棧傳遞給Varnish,緩存應(yīng)用程序。另外,HAProxy還會偵聽TCP端口80上的傳入HTTP連接,并將其重定向到端口443,從而將所有流量強制轉(zhuǎn)換為HTTPS。
 
HAProxy下面是秘密武器:清漆。Varnish是一種反向代理和緩存應(yīng)用程序,旨在直接從RAM中提供靜態(tài)資產(chǎn),這比直接向文件系統(tǒng)層提供服務(wù)要快得多(盡管這里有一個全面的討論兔子洞,當(dāng)你在Linux的頁面緩存機制中混合使用時,文件真的存在)。以下是緩存如何工作的簡短版本,以及它為什么幫助SpaceCityWeather。當(dāng)WordPress提供頁面時,通常該頁面是由WordPress應(yīng)用程序動態(tài)生成的。通常,每次從WordPress請求頁面時,該頁面將從各種元素中以編程方式從頭開始組裝,并且為每位訪客提供熱和新鮮的服務(wù)。想想WordPress就像一個面包師,忙著在廚房做牛角面包。每一位參觀者都會得到自己特別為他們制作的溫暖,酥脆的羊角面包。
 
這意味著當(dāng)你的WordPress網(wǎng)站有很多流量時,面包師會變得非常忙碌。一條線形成。人們不得不等待他們的羊角面包。誰喜歡等羊角面包?有時你現(xiàn)在需要一個牛角面包。添加像Varnish這樣的緩存應(yīng)用程序意味著面包師只需制作一個牛角面包。那個牛角面包還需要一些時間才能制作,但一旦制成,面包師就可以將它放入一個神奇的羊角面包復(fù)制盒。按下按鈕后,盒子立即彈出一個新月形面包的副本。只要人們只需要那種牛角面包,面包師就可以按下按鈕,遞出牛角面包,然后繼續(xù)幫助下一位顧客。
 
當(dāng)然,魔術(shù)盒不能制作不同的羊角面包。面包師仍然必須這樣做。但貝克只需要花費的時間,使一個東西,然后魔術(shù)盒(幾乎)可以立即發(fā)送給任何人誰想要它的那個副本,讓自由地做其他的東西面包師。對于太空城天氣,Varnish處理了絕大多數(shù)流向服務(wù)器的流量,因為大多數(shù)人想要查看網(wǎng)站的首頁或最新的更新帖子。因為從緩存中提供服務(wù)的對象比從頭開始服務(wù)要快得多(從服務(wù)器負載的角度來看,緩存中服務(wù)的內(nèi)容幾乎是“免費的”),因此Varnish是允許SpaceCityWeather擴展到多于一個的關(guān)鍵組件之一通常的日常負載的100倍,而不會被要求服務(wù)的請求數(shù)量所淹沒。
 
當(dāng)然,Varnish并不是鎮(zhèn)上唯一的緩存游戲,甚至沒有關(guān)閉。Nginx本身有一個很好的緩存機制。關(guān)于Nginx或Varnish是否是任何給定站點的更適合的緩存層,都有一個單獨的辯論-兩者都是高性能的,但是在功能和配置方面存在差異。我更喜歡(至少現(xiàn)在)堅持使用光油,以利用具有清晰定義的圖層的堆棧,這可以使故障排除問題更容易,因為問題通常是分區(qū)的。另外,經(jīng)過多年使用光油后,我很合理地習(xí)慣了它的怪癖和古怪。
 
提示你的服務(wù)器
 
但是如果你沒有任何東西需要服務(wù),世界上所有的緩存都無法幫到你,所以一個強大的Web服務(wù)器應(yīng)用程序是必需的。SpaceCityWeather以及服務(wù)器上的所有其他站點都由Nginx提供支持,Nginx是一款高性能,事件驅(qū)動的Web服務(wù)器應(yīng)用程序,我已經(jīng)為此編寫了廣泛的應(yīng)用程序。
 
Nginx是當(dāng)前使用的三種最流行的Web服務(wù)器應(yīng)用程序之一,以及Apache和Microsoft的IIS。它快速而廣泛的使用,這意味著它適用于很多目的,關(guān)于它配置的每個方面的Nginx專用教程都遍布在Web上。作為實際的“服務(wù)器”應(yīng)用程序,Nginx提供了WordPress應(yīng)用程序和其他堆棧之間的鏈接;它還提供WordPress的“靜態(tài)資產(chǎn)”,而不必打擾WordPress。
 
WordPress是一個應(yīng)用程序,這意味著它必須在某些方面運行。更準確地說,WordPress的PHP文件需要運行在Web服務(wù)器上的PHP解釋器或進程管理器來解析和執(zhí)行它們包含的代碼。對于這項任務(wù),我們使用PHP-FPM,并進行了一些性能調(diào)整(主要是RAM和工作人員數(shù)量)以及PHP7。PHP7通常比仍然常見的PHP5快得多,并且當(dāng)您每秒提供幾十或幾百頁時,速度就很重要。我對PHP做了一些調(diào)整,盡管它對空間城市天氣無關(guān)緊要-確保PHP會話存儲在memcached而不是磁盤上。在擁有大量登錄用戶的系統(tǒng)上,這可以緩解一些IO瓶頸。
 
WordPress本身
 
由于WordPress作為博客平臺的普及程度非常高,因此對于如何調(diào)整WordPress性能的建議無處不在。如果您正在運行一個高度定制的WordPress網(wǎng)站,您可能需要調(diào)整深度以適應(yīng)雜草,以確保其在負載下的高性能。幸運的是,除了應(yīng)用主題外,Eric并沒有選擇在SpaceCityWeather上做太多的定制。這種配置選擇使得調(diào)整起來相對簡單。
 
如果您搜索“WordPress性能”,您可能會看到的第一件事是建議安裝WPSuperCache或W3TotalCache等一些流行的WordPress插件之一。這些插件確實有幫助(尤其是W3TotalCache,它與Varnish和其他緩存應(yīng)用程序很好地協(xié)作),并且使用它們是一種選擇;不過,我選擇避開它們的使用,而是將清漆緩存作為我單一的主要緩存解決方案。再一次,這是因為我更喜歡把我的堆棧中的圖層分開清晰-每個地方都有一個地方,一切都在它的位置。
 

免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)送郵件至:operations@xinnet.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

免費咨詢獲取折扣

Loading