亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

基礎(chǔ)原理和算法解析 nginx的負載均衡算法有哪些( 二 )


功能:通過復(fù)用連接,降低 Nginx 與上游服務(wù)器建立、關(guān)閉連接的消耗,提升吞吐量的同時降低時延模塊: ngx_http_upstream_keepalive_module 默認編譯進 Nginx,通過 –without-http_upstream_keepalive_module 移除對上游服務(wù)器的 HTTP 頭部設(shè)定proxy_http_version 1.1;proxy_set_header Connection "";upstream_keepalive 的指令Syntax: keepalive connections;Default: —Context: upstream# 1.15.3 非穩(wěn)定版本新增命令Syntax: keepalive_requests number;Default: keepalive_requests 100; Context: upstreamSyntax: keepalive_timeout timeout;Default: keepalive_timeout 60s; Context: upstreamkeepalive connections;指定上游服務(wù)域名解析的 resolver 指令當使用域名訪問上游服務(wù)時,可以指定一個 DNS 解析的地址,還可以設(shè)置超時等,這個時候就要用到 resolver 指令 。
Syntax: resolver address ... [valid=time] [ipv6=on|off];Default: —Context: http, server, locationSyntax: resolver_timeout time;Default: resolver_timeout 30s; Context: http, server, location實戰(zhàn)下面我起了兩個 Nginx 的進程,一個作為上游服務(wù)器,監(jiān)聽 8011 和 8012 端口,另一個作為反向代理向上游服務(wù)器發(fā)請求 。
上游服務(wù)器的配置如下,當請求是到達 8011 端口就返回 8011 server response. ,當請求到達 8012 端口返回 8012 server response.。
server {listen 8011;default_type text/plain;return 200 '8011 server response.n';}server {listen 8012;default_type text/plain;# client_body_in_single_buffer on;return 200 '8012 server response.n';}作為反向代理的 Nginx 服務(wù)器配置是這個樣子的:
這里面 8011 端口和 8012 端口的區(qū)別在于 8011 端口設(shè)置了權(quán)重和對應(yīng)的參數(shù) 。
upstream rrups {server 127.0.0.1:8011 weight=2 max_conns=2 max_fails=2 fail_timeout=5;server 127.0.0.1:8012;keepalive 32;}server {server_name rrups.ziyang.com;error_log myerror.log info;location /{proxy_pass http://rrups;proxy_http_version 1.1;proxy_set_header Connection "";}}兩個 Nginx 都配置好之后,來測試一下:
?nginx curl rrups.ziyang.com8011 server response.?nginx curl rrups.ziyang.com8011 server response.?nginx curl rrups.ziyang.com8012 server response.由于 8011 端口的權(quán)重設(shè)置的是 2,所以根據(jù) rr 算法,每次都是先兩個連接負載到 8011 端口上然后是 8012 端口 。
這一節(jié)講了 rr 負載均衡算法,rr 算法是所有負載均衡算法的基礎(chǔ),在其他負載均衡算法失效的情況下,Nginx 也會使用 rr 算法進行負載均衡 。
負載均衡哈希算法,ip_hash 與 hash 模塊rr 輪詢算法沒有辦法保證請求由某一臺指定的服務(wù)器去處理,只能輪詢處理請求,在 AKF 立方體中只能在 x 軸方向上進行水平擴展 。如果基于 z 軸擴展,就可以采用哈希算法保證某一類請求只由特定的服務(wù)器處理 。
功能:以客戶端的 IP 地址作為 hash 算法的關(guān)鍵字,映射到特定的上游服務(wù)器中對 IPv4 地址使用前 3 個字節(jié)作為關(guān)鍵字,對 IPv6 則使用完整地址可以使用 rr 算法的參數(shù)可以基于 realip 模塊修改用于執(zhí)行算法的 IP 地址模塊: ngx_http_upstream_ip_hash_module ,通過 –without-http_upstream_ip_hash_module 禁用模塊指令的話比較簡單,就是 ip_hash 出現(xiàn)在 upstream 上下文中 。
Syntax: ip_hash;Default: —Context: upstream這里面不得不提到的一個模塊就是 realip 模塊,哈希算法是根據(jù) remote_addr 這個變量的值來進行哈希的,這個變量已經(jīng)出現(xiàn)了好多次了,可見是多么常用的一個變量 。不熟悉的還是到前面Nginx 的 11 個階段 重新復(fù)習(xí)一下 。
還有另外一個模塊 upstream_hash 模塊,這個模塊可以基于任意的關(guān)鍵字實現(xiàn) hash 算法的復(fù)雜均衡 。
基于任意關(guān)鍵字實現(xiàn) hash 算法的負載均衡:upstream_hash 模塊功能:通過指定關(guān)鍵字作為 hash key,基于 hash 算法映射到特定的上游服務(wù)器中關(guān)鍵字可以含有變量、字符串可以使用 rr 算法的參數(shù)模塊: ngx_http_upstream_hash_module ,通過 –without-http_upstream_ip_hash_module 禁用模塊指令的話就是 hash 指令,后面可以跟關(guān)鍵字作為 key 。


以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!

「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助: