web处理高并发措施
高并發(fā)處理的思路,從幾個(gè)方面進(jìn)行解決
先來了解幾個(gè)名詞
QPS: 每秒處理的請(qǐng)求數(shù)量!
響應(yīng)時(shí)間: 處理一個(gè)請(qǐng)求需要的時(shí)間!
吞吐量: 單位時(shí)間內(nèi)的處理請(qǐng)求數(shù)量!
最大并發(fā)數(shù): 同一時(shí)間能支持的最大請(qǐng)求數(shù)!
1、流量處理
防盜鏈處理(可以在nginx.conf配置,做加密處理,或者請(qǐng)求域名限制)
盜鏈概念:
我們常見的小站盜用大站的圖片、視頻等信息資源,來減輕自己服務(wù)器的負(fù)擔(dān)的現(xiàn)象成為盜鏈;因?yàn)檎鎸?shí)的空間和流量均來自別人的服務(wù)器。
防盜鏈概念:
防止別人通過技術(shù)手段盜用本站的資源,讓其展示本站資源失效,減輕服務(wù)器和帶寬的壓力的稱之為防盜鏈。
防盜鏈的方法:
通過referer或者簽名,可以檢測(cè)目標(biāo)網(wǎng)頁訪問的來源網(wǎng)頁,一旦檢測(cè)來源不是本站即進(jìn)行阻止或者返回指定頁面(404)
①Referer: nginx中有個(gè)ngx_http_referer_module模塊,用于阻止來源非法的域名請(qǐng)求。
實(shí)現(xiàn)圖片防盜鏈:所有來自domain.com和域名以及baidu和google的站點(diǎn)都可以訪問到當(dāng)前站點(diǎn)的圖片,如果來源域名不在這個(gè)列表中,那么$invalid_referer等于1,在if語句中返回一個(gè)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實(shí)現(xiàn)nginx防盜鏈
2、前端優(yōu)化
減少HTTP請(qǐng)求,減少css,js,image等組件的請(qǐng)求數(shù)(例如設(shè)置地圖圖片請(qǐng)求)
添加異步請(qǐng)求(ajax的異步請(qǐng)求等)
啟用瀏覽器緩存和文件壓縮
CDN加速(cdn的工作原理要明確,可以選用LVS做4層負(fù)載均衡,nginx或者squid做反向代理)
建立獨(dú)立的圖片服務(wù)器
3、服務(wù)端優(yōu)化
頁面靜態(tài)化:比如主頁和詳情頁這些經(jīng)常訪問的頁面
并發(fā)處理:優(yōu)化代碼:盡量避免多層循環(huán),避免多次訪問數(shù)據(jù)庫,
隊(duì)列處理:用戶進(jìn)入隊(duì)列進(jìn)行排隊(duì)等待進(jìn)行處理
4、數(shù)據(jù)庫優(yōu)化
數(shù)據(jù)庫緩存(redis)
分庫分表,分區(qū)操作
讀寫分離
主從復(fù)制
雙主熱備
負(fù)載均衡
5、web服務(wù)器優(yōu)化
nginx負(fù)載均衡
F5(價(jià)格高昂)
LVS負(fù)載均衡
總結(jié)
以上是生活随笔為你收集整理的web处理高并发措施的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: React Native使用指南-原生U
- 下一篇: KVO和KVC简介