通過多個例項進行負載均衡是乙個比較常用的技術,它用來是資源利用最大化、提高通過率、降低延遲響應、確保容災等。
nginx最簡單的負載均衡配置如下:
}}nginx的反向**實現包含負載均衡的種類:http、https、fastcgi、uwsgi、scgi和快取等。
如果要用https的負載均衡,只需要使用https的協議即可。
當為fastcgi、uwsgi、scgi和快取設定負載均衡時,使用相應的fastcgi_pass、uwsgi_pass、scgi_pass和memcached_pass的指令集即可,這裡不做詳細介紹。
另外乙個負載連線方式是最小連線。最小連線的方式可以使應用例項間的負載更公平,例如在一些請求需要花費更長時間去完成的情況。
使用最小連線的方式,nginx不會將過多的請求分配到乙個比較忙的應用服務上,它將把請求分配到相對不忙的應用服務上。
最小連線的負載均衡方式在nginx中的配置如下,它作為服務組中的乙個配置出現:
least_conn;
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}如果需要將乙個客戶端繫結到乙個特殊的應用服務上,換句話說,使客戶端的會話「粘連」或「保持」,就要使用「ip-hash」的負載均衡機制了。
使用ip-hash,客戶端的ip用來做雜湊的key,決定著選擇服務組中的哪個應用服務這個客戶端的請求。這種方法決定了相同客戶端的請求總是分配給相同的服務,除非這個服務不可用了。
配置ip-hash的負載均衡,只需要將ip-hash指令新增到服務組(upstream)中,如下:
ip_hash;
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}通過使用服務權重,可以進一步影響負載均衡的邏輯。上面的例子中,沒有配置權重的意思是,所有指定的服務將被看做有相同的權重。
採用輪詢的方式,如果有足夠的請求,並且請求通過統一的方式處理並且快速的完成的情況下,它仍然意味著在服務之間或多或少的公平的分配。
當weight引數為乙個服務指定時,它將是負載均衡過程中的一部分。
server srv1.example.com weight=3;
server srv2.example.com;
server srv3.example.com;
}上面的配置中,每5個應用請求將分配如下:3個請求分配個srv1,1個請求分配給srv2,另乙個請求分配給srv3。在nginx最近的版本中,在最小連線和ip-hash的負載均衡方式中使用權重(weight)也是有可能的。
nginx的反向**包括帶內(或被動)的健康檢查。如果乙個服務的響應是失敗的,nginx將會標記這個服務是失敗的,並且在短暫的時間內,避免為下乙個請求選擇這個服務。
max_fails指令設定是,在fail_timeout時間內,嘗試和這台服務連續通訊失敗的次數。預設情況下,max_fails設定為1,當設定為0時,這個服務的健康檢查將失效。fail_timeout引數定義了這個服務多長時間會被標記為失效,在服務失敗的fail_timeout間隔後,nginx使用活的客戶端請求優雅的探測服務,如果探測成功了,這個服務將會標記為成功的。
nginx的基礎應用(續)
nginx的基礎應用 續 一 簡介 通過多個例項進行負載均衡是乙個比較常用的技術,它用來是資源利用最大化 提高通過率 降低延遲響應 確保容災等。二 負載均衡的方法 三 預設的負載均衡配置 nginx最簡單的負載均衡配置如下 nginx的反向 實現包含負載均衡的種類 http https fastcg...
nginx的基礎應用
今天我們將介紹一些nginx的簡單應用,啟動 停止nginx,過載nginx的配置,nginx配置檔案的格式,如何配置nginx服務靜態資源,如何配置nginx作為反向 伺服器。nginx有乙個主程序和幾個工作程序。主程序主要是讀取和解析配置檔案,以及保持工作程序工作 工作程序處理實際的請求。ngi...
nginx的基礎應用
nginx的基礎應用 一 簡介 今天我們將介紹一些nginx的簡單應用,啟動 停止nginx,過載nginx的配置,nginx配置檔案的格式,如何配置nginx服務靜態資源,如何配置nginx作為反向 伺服器。nginx有乙個主程序和幾個工作程序。主程序主要是讀取和解析配置檔案,以及保持工作程序工作...