關於nginx

基礎

nginx是一款輕量級的web服務器/反向代理服務器及電子郵件代理服務器,特色是佔用內存少,併發處理能力強,事件驅動

nginx啓動後,在unix系統中以daemon的方式在後臺運行,後臺包括一個master進程和多個worker進程,每一個worker進程都是從master fork過來的
master進程用於管理其餘的worker進程,worker進程之間互相獨立
nginx採用異步非阻塞的方式處理請求,能夠同時處理上千萬個請求
nginx利用用戶傳入的超時時間生成一個定時器,放在紅黑樹中進行維護

nginx啓動時,先讀取配置文件,獲取到須要監聽的端口和ip,而後在master進程中初始化這些監控的socket,再fork出worker進程,而後worker進程會監聽新的鏈接請求

nginx在處理請求的時候採用的狀態機來解析請求,提升效率

nginx經過ngx_accept_disable變量來控制每一個worker進程的鏈接數,防止某個worker進程處於很是繁忙而其餘進程處於空閒狀態

nginx的負載均衡策略
    一、輪詢
    每一個請求按時間順序逐一分配到後端服務器,若是後端服務器down掉,會自動剔除
    能夠在上面加上權重,用於後端服務器性能不均勻的狀況
    
    二、ip_hash
    根據用戶請求ip來計算服務器地址,使得同一個ip的全部請求都落在同一個服務器上,能夠解決session問題
    
    三、fair
    按後端服務器響應時間來分配請求,響應時間短的優先分配
    
    四、url_hash
    按url的Hash結果來分配請求,使得相同的url老是落在同一個服務器上,使用於後端服務器爲緩存的狀況
相關文章
相關標籤/搜索