負載均衡及網絡原理


1、TCP三次握手四次揮手介紹
 
三次握手:客戶端發送請求給服務端,服務端收到請求后,給客戶端發送ack確認,客戶端收到后,給服務端發送確認請求包。
 
 
四次揮手:
    關閉客戶端與服務端的連接:客戶端發送關閉請求,服務端收到后回復ACK確認。
    關閉服務端與客戶端的連接:服務端向客戶端發起關閉請求,客戶端回復ACK確認。
   
     
 
 

2、網絡7層架構與TCP/IP四層模型

      
 
    
 

3、HTTP原理

    Http是無狀態協議,客戶端與服務端建立的短連接服務端響應后就關閉了。默認80端口
    1.地址解析;根據請求地址解析出協議名、主機名、端口、請求路徑,然后根據DNS解析出IP
    2.將上述信息及參數封裝HTTP請求包,
    3.封裝成TCP包並建立連接(三次握手)
    4.發送請求命令
    5.服務器響應
    6.服務器關閉TCP連接,若瀏客服端Connection:keep-alive,TCP 連接在發送后將仍然保持打開狀態
 
 

4、HTTP狀態碼

400  Bad Request(錯誤請求)
401  Unauthorized(未授權)
402  Payment Required(需要付款)
403  Forbidden(禁止訪問)
404  Not Found(未找到)
405  Method Not Allowed(不允許使用該方法)
406  Not Acceptable(無法接受)
407  Proxy Authentication Required(要求代理身份驗證)
408  Request Timeout(請求超時)
500  Internal Server Error(內部服務器錯誤)
501  Implemented(未實現)
502  Bad Gateway(網關錯誤)
503  Service Unavailable(服務不可用)
504  Gateway Timeout (網關超時)
505  HTTP Version Not Supported(HTTP 版本不受支持)
 

5、HTTPS原理

        HTTPS是以安全為目標的HTTP 通道加入 SSL 層,其所用的端口號是 443
1. 建立連接獲取證書:客戶端通過 TCP 和服務器建立連接,並且在握手中過程中請求證書。即客戶端發出一個消息給服務器,這個消息里面包含了自己可實現的算法列表和其它一些需要的消息,SSL的服務器端會回應一個數據包,這里面確定了這次通信所需要的算法,然后服務器向客戶端返回證書。(證書里面包含了服務器信息:域名。申請證書的公司,公共秘鑰)。
2.證書驗證:Client 在收到服務器返回的證書后,判斷簽發這個證書的公共簽發機構,並使用這個機構的公共秘鑰確認簽名是否有效,客戶端還會確保證書中列出的域名就是它正在連接的域名。
3.數據加密和傳輸: 如果確認證書有效,那么客服端生成對稱秘鑰並使用服務器的公共秘鑰進行加密。然后發送給服務器,服務器使用它的私鑰對它進行解密。
   
    
     
 
 
     
 
 
  
 
 

6、HTTP1.0與HTTP1.1的區別

 
 
         Http1.0問題:鏈接無法復用,即不支持持久鏈接。每次連接都要三次握手和慢啟動(對網路實際容量進行試探,避免由於發送了過量的數據而導致阻塞)。
    線頭阻塞(Head of Line Blocking,HOLB, 請求隊列的第一個請求因為服務器正忙(或請求格式問題等其他原因),導致后面的請求被阻塞。
    Http1.1 解決的1.0的問題后,通過header 里Connection: keep-alive,請求管道化,增加緩存。
      未來2.0的趨勢,多路復用,頭部字節壓縮傳輸。
 

7、CDN介紹

    CDN內容分發系統,能夠實時地根據網絡流量和各節點的連接、負載狀況以及到用戶的距離和響應時間等綜合信息將用戶的請求重新導向離用戶最近的服務節點上。其目的是使用戶可就近取得所需內容,解決 Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度。
    CND一般包含分發服務系統、負載均衡系統和管理系統。
 

8、Nginx 反向代理介紹

        使用代理服務器作用:可以提供訪問速度(熱點和靜態內容緩存);防火牆作用(過濾不安全信息);通過代理訪問不能訪問的站點;
        反向代理作用:可以防止外網對內網服務器的惡性攻擊、緩存以減少服務器的壓力和訪問安全控制之外,還可以進行負載均衡,將用戶請求分配給多個服務器
        Nginx的功能:反向代理、動靜分離、負載均衡。
 

9、Nginx負載均衡策略

        輪詢:
        權重:
        ip_hash:
        url_hash:
        fair 響應時間短優先分配
        least_conn 最少連接
 

10、Nginx常用配置

        限流:Nginx按請求速率限速模塊使用的是漏桶算法。
        limit_req_zone 用來限制單位時間內的請求數,即速率限制
        limit_req_conn 用來限制同一時間連接數,即並發限制
        
  
  
 

11、負載均衡軟件介紹

        Nginx/LVS/HAProxy的基於Linux的開源免費的負載均衡軟件,
        F5/Array 收費的,F5功能更強大,收費也貴
        Web前端采用Nginx/HAProxy+Keepalived作負載均衡器;后端采用MySQL數據庫一主多從和讀寫分離,采用LVS+Keepalived的架構。
 
        七層負載均衡與四層負載均衡的區別:
        七層負載均衡:工作在應用層,還可以支持四層負載均衡,基於URL等應用層信息的負責均衡,例子:Nginx、HAProxy、MySQL Proxy。七層應用負載,可以動靜分離,使網絡更智能化。
         四層負載均衡:工作在傳輸層,基於IP+PORT ,例子:LVS、F5。TCP的建立(三次握手)是客戶端與服務端直接建立的,負責均衡設備類似路由器功能,負責尋找最佳服務器,對報文中IP地址修改為后端服務器。
 
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM