## 網站優化
**流量優化**
* 防盜鏈處理
* 通過Referer或者簽名,網站可以檢測目標網頁訪問的來源網頁,如果是資源文件,則可以跟蹤到顯示它的網頁地址。一旦到來源不是本站即進行阻止或返回指定頁面
>1. 第一種
>nginx 模塊 ngx_http_referer_module 用于阻擋來源非法的域名請求
>nginx 指令 valid_referers,全局變量$invalid_referer
>```
>location ~ .*\.(jpg|jpeg|gif|png|js|css)$
>{
> expires 30d;
> access_log /dev/null;
> valid_referers none blocked rent.djphp.top;
> if ($invalid_referer){
> return 404;
> }
>}
>```
>2. 第二種
第三方模塊HttpAccessKeyModule實現nginx防盜鏈
accesskey on|off 模塊開關
accesskey_hashmethod md5 | sha-1 簽名加密方式
accesskey_arg GET參數名稱
accesskey_signature 加密規則
>3. 第三種
**rewrite\_module**
****SetEnvIfNoCase**和**access****
****
**前端優化**
* 減少HTTP請求
>* * 圖片地圖、圖片合并
>* * js、css腳本合并
>* * 圖片使用base64編碼直接嵌入網頁中
* 添加異步請求
* 啟用瀏覽器緩存和文件壓縮
* * 啟用瀏覽器緩存
>* * * 200 from memory cache: 直接獲取本地緩存
>* * * 304 not modified: 協商緩存,瀏覽器在請求頭中發送一定的校驗數據到服務器,如果服務端數據沒有改變,則從瀏覽器本地緩存響應
* * 不建議使用html代碼壓縮,Gzip壓縮
>* * * gzip on | off #是否開啟gzip
>* * * gzip_buffers 32 4k | 16 8k # 緩沖(在內存中緩存幾塊?每塊多大)
>* * * gzip_comp_level [1-9] #推薦6 壓縮級別(級別越高,壓的越小,越浪費cpu計算資源)
>* * * gzip_disable # 正則匹配UA 什么樣的Uri不進行gzip
>* * * gzip_min_length 200 #開始壓縮的最小長度
>* * * gzip_http_version 1.0 | 1.1 #開始壓縮的http協議版本
>* * * gzip_proxied #設置請求者代理服務器,該如何緩存內容
>* * * gzip_types text/plain application/xml # 對哪些類型的文件用壓縮
>* * * gzip_vary on | off # 是否傳輸gzip壓縮標志
* 前端資源CDN加速
* * CDN:內容分發網絡,盡可能避開互聯網上有可能影響數據傳輸和穩定性,是內容傳輸的更快、更穩定
>* * * CDN系統能夠實時地根據網絡流量和各節點的鏈接、負載狀態以及到用戶的距離和響應時間等綜合信息將用戶的請求重新導向離用戶最近的服務節點上
>* * * 本地cache加速,提高訪問速度
>* * * 跨運營商的網絡加速,保證不同的網絡用戶都有良好的訪問質量
>* * * 遠程用戶根據DNS負載均衡技術智能自動選擇cache服務器
>* * * 自動生成服務器的遠程Mirror(鏡像) cache服務器,遠程響應
>* * * 用戶發起請求-->智能DNS解析(根據IP判斷地理位置,接入網絡類型,選擇路由最短和負載最輕的服務器)-->取得緩存服務器IP-->把內容返回給用戶(如果緩存中有)-->向源站發起請求-->將結果返回給用戶-->將結果存入緩存服務器
* 建立獨立圖片服務器用戶訪問時從cache服務器上讀取數據。
****
**服務端優化**
* 頁面靜態化
* 并發處理
* 隊列處理
****
**數據庫優化**
* 數據庫緩存
* 分庫分表、分區操作
* 讀寫分離
* 負載均衡
****
**WEB服務器優化**
* 負載均衡
- 簡介
- PHP
- 字符串函數
- 數組函數
- 正則
- 加密函數
- 面向對象
- 關鍵字
- 設計模式
- 魔術方法
- 機制擴展
- 會話機制
- PHP框架
- laravel
- 問題
- swoole
- easyswoole
- workerman
- 數據庫
- Sphinx
- MongoDB
- MemCache
- Redis
- 基礎操作
- 數據類型
- 持久化
- 分布式鎖
- 內存模型
- redis高級特性
- MySql
- 基礎操作
- 數據類型
- 數據表引擎
- 鎖機制
- 事務處理
- 存儲過程
- 觸發器
- 索引
- 關聯查詢
- 分析SQL語句-優化查詢
- 分區分表
- 主從復制
- MySql安全性
- 網絡協議
- HTTP
- header詳解
- 狀態碼
- nginx-配置
- 邏輯算法
- 時間和空間復雜度
- 常見算法
- 數據結構
- 核心
- 進程、線程、協程
- 存儲容量-計量單位
- 開發軟件及配置
- 版本控制器
- Git
- Fidder
- Fidder-Android7
- 自動化部署
- Jenkins
- supervisor
- Elasticsearch
- LogStash
- RabbitMQ
- AB測試
- JAVA-JDK
- FileBeat
- PhpStorm
- Composer
- Linux
- API安全
- 高并發及大流量相關概念
- 網站優化
- WEB
- Electron