1. 用cdn,靜態資源,放到cdn上(js,css,靜態圖片)css
2. 用精靈圖(一個大圖,上面又不少小圖,用定位,定位到小圖)前端
3. 前端緩存(響應頭設置緩存時間)cache-control (django如何向響應頭寫鍵值對:響應對象["aaa"]="aaa")python
1. nginx作集羣(dns解析,負載均衡硬件 f5)nginx
2. 動靜分離(靜態資源直接經過nginx轉發,拿去;uwsgi只負責處理動態請求)redis
3. 負載均衡(nginx配置)sql
4. 集羣化部署數據庫
5. 拆服務(分佈式)django
替代性能低的wsgiref部署項目小程序
使用uwsgi(c寫的wsgi服務器)部署緩存
使用gunicorn(python寫的wsgi服務器)部署
1. 作緩存(redis)
2. 頁面靜態化(不適用於app和小程序),提早生成一個首頁頁面(被訪問頻繁的頁面),數據不一致(當有數據增長,再從新生成一次這個頁面),用異步:用celery,django的信號(異步操做),當對象保存時,從新生成靜態頁面
3. 異步操做(celery),一個請求須要耗時3s,設計成異步--請來了--》直接返回(任務已提交,請求正在處理)
4. 數據庫優化,優化sql,外鍵儘可能不創建,適當建索引,讀寫分離,數據庫集羣,分庫分表
5. 優化代碼,多線程處理,儘可能不在for循環裏查數據庫