Nginx
nginx常用模塊以及其功能
proxy模塊,進行代理功能
ssl模塊,進行HTTPS協議的使用
gzip模塊,進行傳輸數據的壓縮
upstream模塊,進行反向代理時使用
static模塊,靜態資源進行訪問的模塊
cache模塊,用于緩存設置
rewrite模塊,用于地址重寫
nginx常用的負載均衡算法
輪詢
默認算法,當代理服務器收到請求后,將請求按順序對服務端進行轉發
加權輪詢
為服務端服務器配置權重,代理服務器在進行轉發時,根據權限大小來進行轉發
ip_hash
對于同一個ip發送的請求,將其請求發送到同一臺后臺服務器上
url_hash
對于請求的相同的URL的IP,代理服務器將其請求發送到同一個后臺服務器上
ip_hash和url_hash都可以進行會話的保持,提高用戶體驗
lease_conn
代理服務器在進行請求轉發時,根據當前服務器的連接數進行分配
lease_time
代理服務器在進行請求轉發時,根據后臺服務器的平均請求時間和當前連接數進行分配請求
random
代理服務器隨機對請求進行轉發
負載均衡的分類
軟件: nginx lvs haproxy
特點: 成本低,開源,部署自由,不需要額外的硬件資源,使用當前已有資源就可以進行部署
適用于中小型企業和初創公司
硬件:F5,A10Network Thunder·
特點; 高可靠,高性能,高成本
使用與大型企業和數據中心,針對有對安全性要求較高的場景
云負載: AWS Elstaic Load Bincing (ELB)
特點:可以基于應用進行負載均衡也可以基于網絡進行負載均衡也可以使用傳統的負載均衡
使用與微服務和云原生場景
nginx并發量高的原因
多模塊,異步非阻塞,I/O多路復用
HTTP協議的特點
無狀態
無連接
媒體獨立
HTTP的原理
客戶端發送請求,服務端收到之后進行返回
HTTP報文中的信息
- 起始行:
- 請求報文:
方法 請求目標 HTTP版本
- 響應報文:
HTTP版本 狀態碼 原因短語
- 請求報文:
- 首部字段:
- 由多個鍵值對組成,描述請求或響應的附加信息。
- 主體:
- 可選部分,攜帶請求或響應的具體數據。