《高併發Web網站構建-徐漢彬》攢課-- 線上學習筆記
阿新 • • 發佈:2019-01-26
高併發Web網站構建-徐漢彬
瀏覽器併發連線數
一次HTTP通訊
TCP三次握手
(保持連線)
請求資料/響應資料
(達到超時條件)
TCP四次斷開
短連線,長連線Keep-alive
==================
Apache
apachctl -v 版本
Prefock模式
多程序
成熟文件,允許執行緒不安全
程序比較重,消耗太多記憶體
Woker模式
多程序和多執行緒
執行緒為主
佔用記憶體少
需要支援執行緒安全,執行緒崩潰問題
Event模式
同Worker模式
解決Keep-alive資源浪費問題
使用條件
Apache 2.4.10
Epoll支援
===================
Nginx
建議配置程序數跟CPU核數一樣
CDN
每個地區一個節點,釋出源分發
推薦Web服務架構
Nginx/LVS — Web伺服器叢集—redis快取(熱點資料)—資料庫儲存
靜態檔案CDN
========================
高併發下的QPS的真實情況
CPU繁忙
記憶體爆滿,引起swap
後端服務異常
高併發下的保護措施
設定合理程序/執行緒數(防止過載)
設定合理的超時時間(各個環節)
如果發生Web服務“雪崩”:不要直接重啟,先切流量(404頁面)
Web服務安全防護
XSS:輸入可以執行程式碼
防禦方法 : 過濾
CSRF防禦:引誘使用者點選“特殊連結”
判斷HTTP_REFERCES
TOKEN校驗
SQL注入
Shell注入
高併發業務安全
佇列思路 one by one
悲觀鎖
樂觀鎖,帶版本號
推薦Redis樂觀鎖
watch //監聽key的版本號
電商秒殺
NOSQL
node.js併發效能