web处理高并发措施
高并發處理的思路,從幾個方面進行解決
先來了解幾個名詞
QPS: 每秒處理的請求數量!
響應時間: 處理一個請求需要的時間!
吞吐量: 單位時間內的處理請求數量!
最大并發數: 同一時間能支持的最大請求數!
1、流量處理
防盜鏈處理(可以在nginx.conf配置,做加密處理,或者請求域名限制)
盜鏈概念:
我們常見的小站盜用大站的圖片、視頻等信息資源,來減輕自己服務器的負擔的現象成為盜鏈;因為真實的空間和流量均來自別人的服務器。
防盜鏈概念:
防止別人通過技術手段盜用本站的資源,讓其展示本站資源失效,減輕服務器和帶寬的壓力的稱之為防盜鏈。
防盜鏈的方法:
通過referer或者簽名,可以檢測目標網頁訪問的來源網頁,一旦檢測來源不是本站即進行阻止或者返回指定頁面(404)
①Referer: nginx中有個ngx_http_referer_module模塊,用于阻止來源非法的域名請求。
實現圖片防盜鏈:所有來自domain.com和域名以及baidu和google的站點都可以訪問到當前站點的圖片,如果來源域名不在這個列表中,那么$invalid_referer等于1,在if語句中返回一個403給用戶
location ~* \.(gif|jpg|png|webp)$ {valid_referers none blocked domain.com *.domain.com server_names ~\.google\. ~\.baidu\.;if ($invalid_referer) {return 403;#rewrite ^/ http://www.domain.com/403.jpg;}root /opt/www/image;}②加密簽名: 使用第三方HttpAccessKeyModule實現nginx防盜鏈
2、前端優化
減少HTTP請求,減少css,js,image等組件的請求數(例如設置地圖圖片請求)
添加異步請求(ajax的異步請求等)
啟用瀏覽器緩存和文件壓縮
CDN加速(cdn的工作原理要明確,可以選用LVS做4層負載均衡,nginx或者squid做反向代理)
建立獨立的圖片服務器
3、服務端優化
頁面靜態化:比如主頁和詳情頁這些經常訪問的頁面
并發處理:優化代碼:盡量避免多層循環,避免多次訪問數據庫,
隊列處理:用戶進入隊列進行排隊等待進行處理
4、數據庫優化
數據庫緩存(redis)
分庫分表,分區操作
讀寫分離
主從復制
雙主熱備
負載均衡
5、web服務器優化
nginx負載均衡
F5(價格高昂)
LVS負載均衡
總結
以上是生活随笔為你收集整理的web处理高并发措施的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: React Native使用指南-原生U
- 下一篇: 机器学习笔记(常见算法)