個人網站怎麼應對大流量?怎麼做負載均衡?
哪些負載均衡技術是個人力所能及的?
nginx自帶的負載均衡能承受多少並發?
mysql的負載均衡怎麼做?
負載均衡後,多台伺服器上的文件怎麼處理?不要說組建團隊。幾台伺服器的錢我出得起,但沒錢租寫字樓、僱用團隊。有那個錢就不幹這個了。
個人站長力所能及的負載均衡,就是不搞什麼負載均衡
就是避開什麼負載均衡,而直接用scale up手段應對流量增加,單機伸縮。scale up很簡單,就是到你的主機商後台升級主機套餐,當前5刀1G20G1T,就升級到10刀2G30G2T,不夠就20刀4G60G4T,不行就再加,加到有冗餘為止。聽起來沒啥技術含量,但這才是雲計算平台普通網站伸縮的正解!
Vultr / Linode / DigitalOcean 或者其他你叫得出名字的主機商,都可以Resize,往上升級。有幾個網站能用到8G內存的?雲主機(或VPS)的擴展能力遠在8G之上。
什麼並發吞吐量,原來小機器常駐四個PHP進程,現在加到20個行了吧?立即5倍,就是這麼立竿見影。
核心優勢:
- 整機備份,這是無可比擬的「簡單」,出再大的亂子,都可以整機恢復,一切都在一個備份里,願意花錢的,還能一日多備,從SysAdmin的角度來說,天底下沒有更好的災後恢復方案,在物理機時代這是通過半吊子的Raid實現的,在雲時代,這是真正的「一鍵恢復」,一台機器,一個備份,一個狀態
- 便宜,你可以自己去查主機商買LoadBalancer的價格和直接本機scale up的價格,可能一台Loadbalancer的價格就超出主機升級費用,這還沒算用LB需要單機擴多機的額外費用
- 簡單,管理一台機器,就是簡單,沒有同步問題要處理,整棧處於一個對站長最友好的狀態
為什麼個人站長不應該搞所謂負載均衡
管理兩台兩台機器的複雜度不是管理一台機器的兩倍,而可能是四倍,八倍。我以一個普通WordPress網站為例,通常瓶頸一出現在資料庫,你如何負載均衡資料庫?設主從,讀寫分離,單寫多讀,至少兩台主機,要配master-slave,要監控同步及時與否,可能還得設防火牆,不然放公有雲上容易被攻擊,放私有雲又很貴,而且主機商未必能提供。你自己也在問mysql怎麼做,這是頂麻煩的事。
另一個瓶頸是靜態文件,再拿一台伺服器來分流,你要麼折NFS共享分區,但這樣就造成單點風險,要麼用rsync這樣的同步,但這樣意味著延遲。你自己也在問多機文件怎麼處理,這本來就是頂麻煩的事。
分散式系統的管理複雜度是單機系統指數級倍,多少個人站長有DevOP的水平?恐怕很少。有的主機上提供LoadBalancer服務,但你真的該用嗎?
DNSPod不是負載均衡方案
用戶有Session怎麼辦?到一台機器登陸狀態,到另一台機器不能登陸?無狀態的靜態資源分流一下還行,有狀態的請求,你要保證狀態一致就得集中共享session池,單機房部署也許可行(意味著單點風險),多機房基本不可行。
很多時候所謂負載均衡,只是你自己的臆想
沒那麼多人用你網站,所以,還是多操心把流量做上去吧,一台學習機的CPU都跑不滿或者一台機器的優化都做不充分,還均衡啥?!有時候負載均衡只有碼農喜歡搗鼓的事,和解決問題本身沒關係,事情搞得越複雜,他們覺得自己越牛逼,他們覺得技術含量越高,問題解決得越好。
曾經在還沒有DNSPod的時候自己做GeoDNS,跨國分布前端節點負載均衡。在還沒有solr時自己把lucene包裝成api做為搜索引擎。用xslt把頁面渲染的工作從php移動到瀏覽器。用golang逐漸替換php......
射手網的經歷讓我自覺很符合這個標題。作為個人網站,面對大流量的問題,有兩個角度,一個是費用,另一個是如何優化架構可以讓錢花出去就能應付得了所有的請求。這個過程,本質上,就是了解所有可用的技術,替換瓶頸,並找到具有最佳性價比的組合的過程。
過節了,不廢話。2015年的IT生態已經變化了,摸爬滾打下來我先告訴你個捷徑和結論:阿里雲的SLB和其雲生態圈。
理由如下:
* SLB本質是上是一套簡化和優化過的龐大LVS集群。健壯度極高
* 進入阿里雲,實際上你就開始和阿里共用同一套生態環境。例如防流量攻擊的雲盾。就我了解,儘管它不受你控制,但是其能提供的保護,遠不是個人能購買的起的。
* 計費合理
合理使用阿里雲,已經足以將個人站長從大部分運維架構網路架構工作中解脫出來。更專註到應用架構的優化上。
利益相關:阿里雲用戶如果只是博客這樣純粹輸出內容的站點的話,是不是用cloudfront這樣的免費CDN就能解決需求了?
你想多了,個人網站,之前和朋友做了個大概1w多ip,連資料庫讀寫分離都沒有,如果5-10萬感覺需要配置下,個人站達到這個量級的不太多,再往上基本你就可以全職干這個了
先考慮下如何做大流量才是王道,技術架構這些,有些理解和認識是隨著流量增加慢慢增加的。考慮雲主機吧。
暫時不要考慮負載均衡的問題。等你覺得你一台物理機快扛不住了,再去做。沒有問題的。先趕快碼代碼吧。
個人網站應對大流量?不是在搞笑吧?如果做到了大流量就不是個人網站了。沒爬就別考慮飛的事情了。浪費腦細胞!
這種專業問題三言兩語很難講清楚 也不適合免費解答 既然網站到了需要考慮負載均衡的地步 那麼花點錢請個專業的人來解決應該是值得的 比如請我 哈哈哈
資深垃圾站站長前來分享下經驗。
首先要看清楚自己網站是什麼類型的,大部分個人站都是新聞資訊類的,這類站點很好優化,全部靜態化完事,但不建議用cms 的html 生成功能,那個應對數據小的站是ok 的,數據一大,那更新頁面就是個噩夢,而且也特別好硬碟。我的做法是用nginx 的fastcgi_cache / proxy_cache來做這個事情,文章頁面給的緩存時間就久一點(3個月1年都可以,根據自己硬碟大小設置),文章列表頁面就緩就設置粒度要細一點,列表第一頁第二頁 就設置個幾分鐘甚至不緩存,隨著頁碼越大緩存時間就可以加大,大家可以想想原因。這種方案兼顧了「快」和「新」,保證了網頁載入速度,也兼顧到了頁面的及時更新。同時這個方案也很省。在現有硬體基礎上再多開銷及幾十個G 的硬碟,你網站的並發量會有大幅的提升,重點是改造工程非常小,幾乎不用動代碼
伺服器分布負載、cdn加速、就可以啦
各種優化,技術需要升級。類似當年的快播搞雲播放。有流量的站長可以找我,流量變現。
中小網站應對大流量,最簡單的方法就是靜態化+利用CDN 。如果這些都無法實現,那通常需要有一定的預算才能解決問題了。
從運營水平上來說,個人網站是做不到很大的並發的,不會有那麼多人來你的網站。如果真的流量爆表了,你完全可以利用這個流量盈利成立公司里,到時候花錢請人解決瓶頸就好。個人網站說到底還是做內容。
目前個人網站,做好memcached緩存,cdn加速基本就行了。等樹大了,買服務即可,把這些交個專業的,這方面阿里雲及各種雲。
多個空間配合一個雲資料庫~省錢好用~域名解析做四個輪詢就好~分流效果明顯~需要空間考慮我。
看下我們的雲主機吧,也不用買伺服器什麼的,但是使用上跟物理機是沒什麼差別的。而且計費方式相當靈活,性價比高,你要的負載均衡的話我們的也有,但是是付費的。http://www.linkcloud.cn/index.php
這是兩個問題,一個是大流量?覺得個人網站大流量就是個偽命題。
何謂大流量?100並發?1000並發?1W並發?一個一天100W PV的網站,假定峰值1小時10W PV,平均每秒也就30並發。。。就算10倍峰值,也就300,這點流量,隨便一個web伺服器,做些簡單的優化,基本都扛得住。
真正會帶來大流量的,是被人攻擊導致的。雖然感覺沒人會沒事搞個人網站,但真被攻擊了,絕對不是簡單的性能優化和堆機器就能扛住的。上G甚至幾十G的流量打過來,差點的機房都能打滿,個人網站必然扛不住。
真遇到被人攻擊的情況,還是老老實實找個雲計算提供商,買個防攻擊服務比較靠譜。
負載均衡,這個能選的太多了,不考慮高可用的話,Nginx,Haproxy,LVS+Keepalived都可以做。 最後兩個並列是因為單純的LVS太簡單了,沒有基本的健康檢查啥的,一般都會搭配Keepalived使用。
這幾種,做個簡單的配置優化,稱個上W的QPS一般都沒啥問題(LVS可以加一個數量級)。
軟的,可以用DNS,不過需要調整TTL,還有健康檢查問題。
不過不管哪種,自己搭建的,還是要考慮被人攻擊,以及負載均衡本身的多活問題,不是很適合小白。(你要沒啥高可用要求除外)
所以還是回到起點,找個雲計算提供商搞的LB就好了,他們再不濟,也比你自己搞的強的多,至少不會犯一些低級的原則性錯誤。我現在自己的網站搭在網易雲上(參考:負載均衡服務_流量分發服務-網易雲),還沒有因為負載均衡出過什麼問題。
什麼樣的網站?
nginx抗並發很強 ,memcached也是
mysql負載均衡,讀的話可以用master-slave讀寫分離
具體問題具體分析,還是找我幫你看看吧,呵呵。
這個一句兩句還真說不清楚,infoq上有很多典型的架構和技術可以參考~!
搜索infoq的點評網架構
考慮使用LVS或者Nginx之類的開源軟體吧
首先要定位清楚,個人網站前期流量多大,同時在線人數有多少,具體網站訪問高峰期並發數有多少等等,做到先知己。知己之後才能確定適合自己的產品(比如你一個個人小網站租用一台實體伺服器——高射炮打蚊子)。一般的需要負載均衡都是大中型服務應用,例如中小型的電商網站,高密集的請求軟體應用等。加Q可詳談447816464
推薦閱讀:
※除了 Airbnb 和 Uber 之外還有哪些領域有分享經濟的精彩案例?
※Ubuntu無法升級,怎麼辦?
※該不該放棄不錯的工作,做一名自由插畫師?
※如何評價Instagram Stories?
※為什麼互聯網公司不開除測試,轉而讓大眾來測,找到一個bug給100元?