版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
應用集群配置一、負載均衡名詞解釋負載均衡負載均衡(又稱為負載分擔),英文名稱為LoadBalance,其意思就是將負載(工作任務)進行平衡、分攤到多個操作單元上進行執(zhí)行,例如Web服務器、FTP服務器、企業(yè)關鍵應用服務器和其它關鍵任務服務器等,從而共同完成工作任務四層和七層負載均衡負載均衡設備也常被稱為"四到七層交換機"所謂四層就是基于IP+端口的負載均衡;四層的負載均衡,就是通過發(fā)布三層的IP地址(VIP),然后加四層的端口號,來決定哪些流量需要做負載均衡,對需要處理的流量進行NAT處理,轉發(fā)至后臺服務器,并記錄下這個TCP或者UDP的流量是由哪臺服務器處理的,后續(xù)這個連接的所有流量都同樣轉發(fā)到同一臺服務器處理。七層就是基于URL等應用層信息的負載均衡;七層的負載均衡,就是在四層的基礎上,再考慮應用層的特征,比如同一個WEB服務器的負載均衡,除了根據VIP加80端口辨別是否需要處理的流量,還可根據七層的URL、瀏覽器類別、語言來決定是否要進行負載均衡。負載均衡策略負載均衡算法負載均衡策略基于DNS的負載均衡?;诜聪虼淼呢撦d均衡?;谔囟ǚ掌鬈浖呢撦d均衡?;贜AT的負載均衡?;贑DN的負載均衡?;贒NS的負載均衡實現原理:一個域名綁定多個IP,通過DNS服務中的隨機域名解析來實現?;贒NS的負載均衡優(yōu)點:實現簡單、實施容易、成本低、適用于大多數TCP/IP應用?;贒NS的負載均衡問題:一旦某個服務器出現故障,即使修改了DNS設置,還是要等待足夠的時間(刷新時間)才能發(fā)揮作用,在此期間保存了故障服務器地址的客戶計算機將不能正常訪問服務器。缺陷:
DNS負載均衡無法得知服務器之間的差異,它不能做到為性能較好的服務器多分配請求,也不能了解到服務器的當前狀態(tài),甚至會出現客戶請求集中在某一臺服務器上的偶然情況?;诜聪虼淼呢撦d均衡實現原理:通過正則映射將請求重定向到內容服務器?;诜聪虼淼呢撦d均衡優(yōu)點:自帶高速緩沖,可減輕內容服務器壓力,提速網絡訪問效率?;诜聪虼淼呢撦d均衡問題:針對每一次代理,代理服務器就必須打開兩個連接,一個對外,一個對內,因此在并發(fā)連接請求數量非常大的時候,代理服務器的負載也就非常大了,在最后代理服務器本身可能會成為服務的瓶頸。缺陷:反向代理是處于OSI參考模型第七層應用的,所以就必須為每一種應用服務專門開發(fā)一個反向代理服務器,這樣就限制了反向代理負載均衡技術的應用范圍,現在一般都用于對web服務器的負載均衡?;谔囟ǚ掌鬈浖呢撦d均衡實現原理:利用網絡協(xié)議的重定向功能來實現?;谔囟ǚ掌鬈浖呢撦d均衡優(yōu)點:服務可定制,可依據底層服務器的性能及實況進行負載調控。基于特定服務器軟件的負載均衡問題:需要改動軟件,成本較高。基于NAT的負載均衡實現原理:將一個外部IP地址映射為多個內部IP地址?;贜AT的負載均衡優(yōu)點:比較完善的負載均衡技術,均衡算法也較靈活,如隨機選擇、最少連接數及響應時間等來分配負載?;贜AT的負載均衡問題:伸縮能力有限,當服務器結點數目過多時,調度器本身有可能成為系統(tǒng)的新瓶頸。基于CDN的負載均衡實現原理:通過在現有的Internet中增加一層新的網絡架構,將網站的內容發(fā)布到最接近用戶的網絡“邊緣”,使用戶可以就近取得所需的內容?;贑DN的負載均衡優(yōu)點:用戶訪問就近服務器,提高訪問速度。負載均衡算法輪詢算法。
Hash散列算法。最少鏈接算法。最快鏈接算法。加權算法。動態(tài)反饋算法。輪詢算法實現原理:每一次把來自用戶的請求輪流分配給內部中的服務器,從1開始,直到N(內部服務器個數),然后重新開始循環(huán)。輪詢算法優(yōu)點:簡潔,無狀態(tài)調度。缺點:輪詢調度算法假設所有服務器的處理性能都相同,不關心每臺服務器的當前連接數和響應速度。當請求服務間隔時間變化比較大時,輪詢調度算法容易導致服務器間的負載不平衡。輪詢算法適用:服務器組中的所有服務器都有相同的軟硬件配置并且平均服務請求相對均衡的情況。Hash散列算法
MD5。一致性Hash算法。各種經典Hash算法。自定義Hash算法。最少鏈接算法實現原理:將請求分配至當前鏈接數最少的服務器。二、web服務器的負載均衡web服務器負載均衡的兩個問題會話的同步應用的同步會話的同步會話的同步無需會話的同步的偽集群該種方式下,當用戶發(fā)出第一個request后,負載均衡器動態(tài)的把該用戶分配到某個節(jié)點,并記錄該節(jié)點的jvm路由,以后該用戶的所有request都會被綁定這個jvm路由,用戶只會與該server發(fā)生交互,這種策略被稱為粘性session(sessionsticky)。該方法的優(yōu)點是響應速度快,多個節(jié)點之間無須通信。缺點也很明顯,某個node死掉以后,它負責的所有用戶都會丟失session應用同步采用共享文件系統(tǒng)NFS、SSHFSSSHFS安裝配置安裝:#如果是ubuntuapt-getinstallsshfs#如果是Redhatyuminstallfuse-sshfsSSHFS命令選項SSHFSoptions:-pPORTequivalentto'-oport=PORT'-Cequivalentto'-ocompression=yes'#啟用壓縮,建議配上-Fssh_configfilespecifiesalternativesshconfigurationfile#使用非默認的ssh配置文件-1equivalentto'-ossh_protocol=1'#不要用啊-oreconnectreconnecttoserver#自動重連-odelay_connectdelayconnectiontoserver-osshfs_syncsynchronouswrites-ono_readaheadsynchronousreads(nospeculativereadahead)#提前預讀-osshfs_debugprintsomedebugginginformation-ocache=BOOLenablecaching{yes,no}(default:yes)#能緩存目錄結構之類的信息-ocache_timeout=Nsetstimeoutforcachesinseconds(default:20)-ocache_X_timeout=Nsetstimeoutfor{stat,dir,link}cacheSSHFS命令選項-oworkaround=LISTcolonseparatedlistofworkaroundsnonenoworkaroundsenabledallallworkaroundsenabled[no]renamefixrenamingtoexistingfile(default:off)[no]nodelaysrvsetnodelaytcpflaginsshd(default:off)[no]truncatefixtruncateforoldservers(default:off)[no]buflimitfixbufferfillupbuginserver(default:on)-oidmap=TYPEuser/groupIDmapping,possibletypesare:#文件權限uid/gid映射關系nonenotranslationoftheIDspace(default)useronlytranslateUIDofconnectinguserSSHFS命令選項-ossh_command=CMDexecuteCMDinsteadof'ssh'-ossh_protocol=Nsshprotocoltouse(default:2)#肯定要2的-osftp_server=SERVpathtosftpserverorsubsystem(default:sftp)-odirectport=PORTdirectlyconnecttoPORTbypassingssh-otransform_symlinkstransformabsolutesymlinkstorelative-ofollow_symlinksfollowsymlinksontheserver-ono_check_rootdon'tcheckforexistenceof'dir'onserver-opassword_stdinreadpasswordfromstdin(onlyforpam_mount)-oSSHOPT=VALsshoptions(seemanssh_config)編輯SSHFS啟動腳本/etc/init.d/sshfs#!/bin/bashcase"$1"instart)echoKWemis2010|sshfs-otransform_symlinks-ofollow_symlinksroot@0:/usr/local/projz_zs/usr/local/project-opassword_stdin-ononempty;;stop)umount/usr/local/project;;restart)$0stop/bin/sleep10$0start;;*)echo"Usage:sshfs{start|stop|restart}"exit1esac三、NGINX配置Nginx的主配置文件Nginx的主配置文件為nginx.conf.此文件在nginx的安裝目錄下.如果你的nginx的安裝目錄是/usr/local/nginx,那么nginx.conf就在/usr/local/nginx/下nginx.conf文件結構…………events{………………..}http{…………….server{………………..}……………….}#usernobody;
#指定使用的用戶
worker_processes1;
#開啟的進程數,一般設置1-5
#error_loglogs/error.log;
#error_loglogs/error.lognotice;
#error_loglogs/error.loginfo;
#定義錯誤日志,以及記錄的日志等級
#pidlogs/nginx.pid;
#定義pid文件位置Nginx的主配置文件nginx.conf文件結構…………events{………………..}http{…………….server{………………..}……………….}Nginx的主配置文件events{
use;
#Nginx支持如下處理連接的方法(I/O復用方法),這些方法可以通過use指令指定
#use[kqueue|rtsig|epoll|select|poll];
#每個進程最大連接數(最大連接=連接數x進程數)
#worker_connections51200;
}
nginx.conf文件結構…………events{………………..}http{…………….server{………………..}……………….}nginx.conf文件結構…………events{………………..}http{…………….server{………………..}……………….}Nginx壓縮輸出配置Nginx使用gzip壓縮技術,這種技術可以壓縮文件至原來的30%甚至更小。IE、FireFox、Opera、Chrome等大多瀏覽器都支持解析gzip過的頁面.Gzip指令用于http{…}之間如下http{…gzipon;gzip_min_length1k;gzip_buffer416k;gzip_http_version1.1;gzip_comp_level2;gzip_typestext/plainapplication/x-javascripttext/cssapplication/xml;gzip_varyon;#accpet_encodinggzip…}Nginx的虛擬主機配置虛擬主機把一臺運行在因特網上的服務器主機劃分成多“虛擬”的主機。每個虛擬主機都具有獨立的域名和Internet服務器(WWW,FTP,EMAIL)功能。利用虛擬主機,不用為每個要運行的網站提供一臺單獨的Nginx服務器或單獨運行一組Nginx進程。虛擬主機提供了在同一臺服務器上、同一組Nginx進程上運行多個網站的功能。每段server{…}就是一個虛擬主機,如果要配置多個虛擬主機,只需配置多個server{…}段即可。http{server{listen80default;server_name_*;access_loglogs/access.logdefault;location/{ indexindex.htmlindex.htm;root/data0/htdocs/htdocs/;}#location}#server}#httpnginx.conf如何配置虛擬主機配置虛擬主機的分類基于配置IP的虛擬主機基于配置域名的虛擬主機http{#第一臺虛擬主機server{ #監(jiān)聽的IP和端口listen380; #主機名稱server_name3; #訪問日志存放路徑access_loglogs/access_logcombined;location/{ #默認首頁文件indexindex.htmlindex.htm; #html文件存放路徑root/data0/htdocs/server1;}}}注:listen可以不寫IP只寫端口,意思是監(jiān)聽本機的所有80端口基于配置IP的虛擬主機http{#第一臺虛擬主機server{ #監(jiān)聽的端口listen80;#主機名server_name; #日志存放路徑access_loglogs/sub_mygogo_com.logcombined;location/{ #默認首頁文件indexindex.htmlindex.html; #工程存放目錄root/data0/htdocs/;}}}基于配置域名的虛擬主機四、NGINX模塊解析內核模塊配置示例usernobody;worker_processes4;#error_log/opt/nginx_logs/error.log;#error_log/opt/nginx_logs/error.lognotice;#error_log/opt/nginx_logs/error.loginfo;pidlogs/nginx.pid;worker_rlimit_nofile65535;內核模塊設置工作的進程數(可設置為可用cpu的數量)。語法: worker_processesnumber默認值: 1上下文: main指定錯誤日志的文件和錯誤級別。語法: error_logfile[debug|info|notice|warn|error|crit]默認值: ${prefix}/logs/error.log上下文: http,server,location定義一個worker進程可以同時處理的文件數量。語法: worker_rlimit_nofilelimit默認值: OS默認上下文: main事件模塊配置示例。events{useepoll;worker_connections65535;}指定事件響應模式。語法: usetype默認值: 在編譯時指定上下文: events設置每個worker進程所能處理的連接數。語法: worker_connectionsnumber默認值: 1024上下文: eventsHTTP內核模塊配置范例http{
include
mime.types;
default_type
application/octet-stream;
sendfile
on;
keepalive_timeout
65;
gzip
off;
upstreambackup{
server:8010;
server:8011;
keepalive10;
}HTTP內核模塊
server{
listen
:80;
server_;
if($http_user_agent~MSIE){
rewrite^(.*)$/msie/$1break;
}
location/{
[configurationA]
}
HTTP內核模塊
location^~/images/{
if($request_method=POST){
proxy_passhttp://backup;
}
[configurationB]
}
location~/purge(/.*){
allow
;
deny
all;
}
}}
HTTP內核模塊為HTTP服務器提供配置上下文。語法: http{...}默認值: —上下文: main開始設置虛擬主機。語法: server{...}默認值: —上下文: http為某個請求URI(路徑)建立配置。語法: location[=|~|~*|^~]uri{...} location@name{...}默認值: —上下文: server,locationHTTP內核模塊計算指定的condition的值。語法: if(condition){...}默認值: —上下文: server,location停止處理當前這一輪的rewrite指令集。語法: break;默認值: —上下文: server,location,if停止處理并返回指定code給客戶端。語法: returncode[text];returncodeURL;returnURL;默認值: —上下文: server,location,ifHTTP內核模塊匹配條件變量名;如果變量值為空或者是以“0”開始的字符串,則條件為假;使用“=”和“!=”運算符比較變量和字符串;使用“~”(大小寫敏感)和“~*”(大小寫不敏感)運算符匹配變量和正則表達式。正則表達式可以包含匹配組,匹配結果后續(xù)可以使用變量$1..$9引用。如果正則表達式中包含字符“}”或者“;”,整個表達式應該被包含在單引號或雙引號的引用中。使用“-f”和“!-f”運算符檢查文件是否存在;使用“-d”和“!-d”運算符檢查目錄是否存在;使用“-e”和“!-e”運算符檢查文件、目錄或符號鏈接是否存在;使用“-x”和“!-x”運算符檢查可執(zhí)行文件;正則正則匹配.xlsxHTTP內核模塊定義將要被作為默認頁的文件。語法: indexfile...;默認值: indexindex.html;上下文: http,server,location為請求設置根目錄。語法: rootpath;默認值: roothtml;上下文: http,server,location,ifinlocation
定義指定路徑的替換路徑。語法: aliaspath;默認值: —上下文: locationHTTP內核模塊設置虛擬主機名。語法: server_name
name
...;默認值: server_name"";上下文: server設置客戶端的長連接在服務器端保持的最長時間。語法: keepalive_timeout
timeout
[header_timeout];默認值: keepalive_timeout75s;上下文: http,
server,
location
為指令錯誤定義顯示的URI。語法: error_pagecode...[=[response]]uri;默認值: —上下文: http,server,location,ifinlocationHTTP內核模塊內嵌變量$arg_name,請求行中的name參數。$args,請求行中參數字符串。$binary_remote_addr,客戶端IP地址的二進制形式,長度總是4字節(jié)。$body_bytes_sent,nginx返回給客戶端的字節(jié)數,不含響應頭。$bytes_sent,nginx返回給客戶端的字節(jié)數(1.3.8,1.2.5)。$connection,連接的序列號(1.3.8,1.2.5)。$content_length,“Content-Length”請求頭的值。$content_type,“Content-Type”請求頭的值。$cookie_name,名為name的cookie。$document_root,當前請求的root指令或alias指令的配置值。$document_uri,與$uri相同。$host,“Host”請求頭的值,如果沒有該請求頭,則為與請求對應的虛擬主機的首要主機名。HTTP內核模塊$hostname,機器名稱。$http_name,任意請求頭的值;變量名的后半部為轉化為小寫并且用下劃線替代橫線后的請求頭名稱。$https,如果連接是SSL模塊,返回“on”,否則返回空字符串。$is_args,如果請求行帶有參數,返回“?”,否則返回空字符串。$limit_rate,允許設置此值來限制連接的傳輸速率。$msec,當前時間,單位是秒,精度是毫秒。(1.3.9,1.2.6)$nginx_version,nginx版本號。$pid,worker進程的PID。$query_string,與$args相同。$realpath_root,按root指令或alias指令算出的當前請求的絕對路徑。其中的符號鏈接都會解析成真是文件路徑。$remote_addr,客戶端IP地址。$remote_port,客戶端端口。$remote_user,為基本用戶認證提供的用戶名。HTTP內核模塊$request,完整的原始請求行。$request_body,請求正文。在由proxy_pass指令和fastcgi_pass指令處理的路徑中,這個變量值可用。$request_body_file,請求正文的臨時文件名。處理完成時,臨時文件將被刪除。如果希望總是將請求正文寫入文件,需要開啟client_body_in_file_only。如果在被代理的請求或FastCGI請求中傳遞臨時文件名,就應該禁止傳遞請求正文本身。使用proxy_pass_request_bodyoff指令和fastcgi_pass_request_bodyoff指令分別禁止在代理和FastCGI中傳遞請求正文。$request_completion,請求完成時返回“OK”,否則返回空字符串。$request_filename,基于root指令或alias指令,以及請求URI,得到的當前請求的文件路徑。$request_method,HTTP方法,通常為“GET”或者“POST”。$request_time,請求處理的時間,單位為秒,精度是毫秒(1.3.9,1.2.6);請求處理時間從由客戶端接收到第一個字節(jié)開始計算。$request_uri,完整的原始請求行(帶參數)。HTTP內核模塊$scheme,請求協(xié)議類型,為“http”或“https”。$sent_http_name,任意的響應頭字段的值。變量名的后半部為轉化為小寫并且用下劃線替代橫線后的響應頭名稱。$server_addr,接受請求的服務器地址。為計算這個值,通常需要進行一次系統(tǒng)調用。為了避免系統(tǒng)調用,必須指定listen指令的地址,并且使用bind參數。$server_name,接受請求的虛擬主機的首要主機名。$server_port,接受請求的虛擬主機的端口。$server_protocol,請求協(xié)議,通常為“HTTP/1.0”或“HTTP/1.1”。$status,響應狀態(tài)碼。$tcpinfo_rtt,$tcpinfo_rttvar,$tcpinfo_snd_cwnd,$tcpinfo_rcv_space,客戶端TCP連接的信息,在支持套接字選項TCP_INFO的系統(tǒng)中可用。$uri,當前請求規(guī)范化以后的URI。變量$uri的值可能隨請求的處理過程而改變。比如,當進行內部跳轉時,或者使用默認頁文件。Log模塊配置實例log_formatmain'$remote_addr-$remote_user[$time_local]''"$request"$status$bytes_sent''"$http_referer""$http_user_agent""$gzip_ratio"';access_log/spool/logs/nginx-access.logmainbuffer=32k;為訪問日志設置路徑,格式和緩沖區(qū)大小。語法: access_logpath[format[buffer=size]];access_logoff;默認值: access_loglogs/access.logcombined;上下文: http,server,location,ifinlocation,limit_except
指定日志的格式。語法: log_formatnamestring...;默認值: log_formatcombined"...";上下文: httpProxy模塊配置范例proxy_temp_path
/date/nginx/proxy_temp12;proxy_cache_path/data/nginx/cachelevels=1:2keys_zone=ng_cache:400minactive=1dmax_size=60g;location/{
proxy_set_header Host $host;
proxy_set_header Connection “”;
proxy_http_version 1.1;
proxy_cache_valid 3025m;
proxy_cache_valid 20020d;
proxy_cache_key "$scheme$host$request_uri";
proxy_cache ng_cache;
proxy_pass http://localhost:8000;}重新定義或者添加發(fā)往后端服務器的請求頭。語法: proxy_set_headerfieldvalue;默認值: proxy_set_headerHost$proxy_host;proxy_set_header Connectionclose;上下文: http,server,location設置代理使用的HTTP協(xié)議版本。語法: proxy_http_version1.0|1.1;默認值: proxy_http_version1.0;上下文: http,server,location設置后端服務器的協(xié)議和地址。語法: proxy_passURL;默認值: —上下文: location,ifinlocation,limit_exceptProxy模塊設置緩存的路徑和其他參數。語法: proxy_cache_pathpath[levels=levels]keys_zone=name:size [inactive=time][max_size=size][loader_files=number] [loader_sleep=time][loader_threshold=time];默認值: —上下文: http指定用于頁面緩存的共享內存。語法: proxy_cachezone|off;默認值: proxy_cacheoff;上下文: http,server,locationProxy模塊為不同的響應狀態(tài)碼設置不同的緩存時間。語法: proxy_cache_valid[code...]time;默認值: —上下文: http,server,location定義如何生成緩存的鍵。語法: proxy_cache_keystring;默認值: proxy_cache_key$scheme$proxy_host$request_uri;上下文: http,server,location設置響應被緩存的最小請求次數。語法: proxy_cache_min_usesnumber;默認值: proxy_cache_min_uses1;上下文: http,server,locationProxy模塊Rewrite模塊配置范例//多目錄轉成參數if($host~*(.*)/.domain/.com){ set$sub_name$1; rewrite^/sort//(/d+)//?$/index.php?act=sort&cid=$sub_name&id=$1last;}//目錄對換rewrite^/(/d+)/(.+)//$2?id=$1last;//在用戶使用ie的使用重定向到/nginx-ie目錄下。if($http_user_agent~MSIE){ rewrite^(.*)$/nginx-ie/$1break;}Rewrite模塊如果指定的正則表達式能匹配URI,此URI將被replacement參數定義的字符串改寫。rewrite指令按其在配置文件中出現的順序執(zhí)行。語法: rewriteregexreplacement[flag];默認值: —上下文: server,location,if可選的flag參數可以是其中之一:last:停止執(zhí)行當前這一輪的ngx_http_rewrite_module指令集,然后查找匹配改變后URI的新location;break:停止執(zhí)行當前這一輪的ngx_http_rewrite_module指令集;redirect:在replacement字符串未以“http://”或“https://”開頭時,使用返回狀態(tài)碼為302的臨時重定向;permanent:返回狀態(tài)碼為301的永久重定向。Map模塊配置范例map$uri$new{ default /home/; /aa /; /bb /; ^/cc/(?P<suffix>.*)$ /$suffix; /john /users/john/;}map$uri$myvalue{ /aa /mapped_aa; ~^/aa/(?<suffix>.*)$ /mapped_bb/$suffix;}Map模塊變量設置的映射表。映射表由兩列組成,匹配模式和對應的值。語法: mapstring$variable{...}默認值: —上下文: http這個指令也支持三個特殊參數。defaultvalue:如果源變量值沒有匹配到任何變量,則設置一個默認值作為結果。當沒有設置default,將會用一個空的字符串作為默認的結果。hostnames:允許用前綴或者后綴掩碼指定域名作為源變量值。includefile:包含一個或者多個存有映射值的文件。Upstream模塊配置范例upstreambackend{serverweight=5;server:8080max_fails=3fail_timeout=30s;serverunix:/tmp/backend3;server:8080backup;keepalive16;}定義一組服務器語法: upstreamname{...}默認值: —上下文: httpUpstream模塊定義服務器的地址address和其他參數parameters。語法: serveraddress[parameters];默認值: —上下文: upstream可定義參數:weight=number。設定服務器的權重,默認是1。max_fails=number。設定Nginx與服務器通信的嘗試失敗的次數。fail_timeout=time。設定統(tǒng)計失敗嘗試次數的時間段,默認是10秒。backup。標記為備用服務器。down。標記服務器永久不可用,可以跟ip_hash指令一起使用。激活對上游服務器的連接進行緩存。語法: keepaliveconnections;默認值: —上下文: upstreamAccess模塊配置范例location/{ deny; allow/24; allow/16; allow2001:0db8::/32; denyall;}Access模塊允許指定的網絡地址訪問語法: allowaddress|CIDR|all;默認值: —上下文: http,server,location,limit_except拒絕指定的網絡地址訪問語法: denyaddress|CIDR|all;默認值: —上下文: http,server,location,limit_exceptFastCGI模塊配置范例upstream_fcgi{
server
:9000weight=8;
server
:9001weight=8;}location~.*.php?${
#fastcgi_passunix:/dev/shm/fcgi.sock;
#fastcgi_pass:9000;
fastcgi_pass_fcgi;
includefastcgi.conf;
fastcgi_buffer_size128k;
fastcgi_buffers4128k;
fastcgi_connect_timeout1800;}FastCGI模塊指定FastCGI服務器監(jiān)聽端口與地址。語法: fastcgi_passfastcgi-server默認值: none上下文: http,server,location指定一些傳遞到FastCGI服務器的參數。語法: fastcgi_paramparametervalue默認值: —上下文: http,server,locationfastcgi.conf指定同FastCGI服務器的連接超時時間,這個值不能超過75秒。語法: fastcgi_connect_timeouttime默認值: fastcgi_connect_timeout60上下文: http,server,location五、NGINX負載均衡NGINX負載均衡Nginx的負載均衡是一個基于內容和應用的七層交換負載均衡的實現優(yōu)點:1、高并發(fā)連接:官方測試能夠支撐5萬并發(fā)連接,在實際生產環(huán)境中跑到2~3萬并發(fā)連接數。2、內存消耗少:在3萬并發(fā)連接下,開啟的10個Nginx進程才消耗150M內存(15M*10=150M)。3、配置文件非常簡單:風格跟程序一樣通俗易懂。4、成本低廉:Nginx為開源軟件,可以免費使用。而購買F5BIG-IP、NetScaler等硬件負載均衡交換機則需要十多萬至幾十萬人民幣。5、支持Rewrite重寫規(guī)則:能夠根據域名、URL的不同,將HTTP請求分到不同的后端服務器群組。6、內置的健康檢查功能:如果NginxProxy后端的某臺Web服務器宕機了,不會影響前端訪問。7、節(jié)省帶寬:支持GZIP壓縮,可以添加瀏覽器本地緩存的Header頭。8、穩(wěn)定性高:用于反向代理,宕機的概率微乎其微。9、支持熱部署:不間斷服務進行更新。Nginx負載均衡
Nginx負載均衡基礎知識
nginx的upstream目前支持4種方式的分配
1)、輪詢(默認)
每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。2)、weight
指定輪詢幾率,weight和訪問比率成正比,用于后端服務器性能不均的情況。3)、ip_hash
每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決session的問題。
4)、fair(第三方)
按后端服務器的響應時間來分配請求,響應時間短的優(yōu)先分配。Nginx負載均衡示例upstreambackend{#定義負載均衡設備的Ip及設備狀態(tài)
server:9090down;
server2:8080weight=2;server3:6060max_fails=3fail_timeout=30s;
server14:7070backup;
}server{ …………location/{proxy_passhttp://backend;}}Upstream可對后端服務器進行健康檢查。a)
down表示當前的server暫時不參與負載b)
weight默認為1.weight越大,負載的權重就越大。c)
max_fails:在fail_timeout時間內對后臺服務器請求失敗的次數
d)
fail_timeout:max_fa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版門診醫(yī)療廢棄物處理承包合同4篇
- 二零二五年度成品油運輸合同范本(應急響應機制)3篇
- 2024年度陜西省公共營養(yǎng)師之四級營養(yǎng)師綜合練習試卷A卷附答案
- 二零二四年度智能家居系統(tǒng)裝修完工驗收合同模板下載3篇
- 二零二五年度磚廠綠色生產技術承包運營合同3篇
- 2025年度國際供應鏈管理服務合同范本4篇
- 智慧辦公未來趨勢預測未來辦公創(chuàng)新工作匯報
- 教育科技背景下的課程管理與教師素養(yǎng)提升
- 2025年度個人消費金融合同書(消費升級助力)2篇
- 2025年度個人住房貸款質押合同標準文本及貸款逾期處理規(guī)定4篇
- 結構力學數值方法:邊界元法(BEM):邊界元法的基本原理與步驟
- 2024年山東省泰安市高考語文一模試卷
- 工程建設行業(yè)標準內置保溫現澆混凝土復合剪力墻技術規(guī)程
- 北師大版物理九年級全一冊課件
- 2024年第三師圖木舒克市市場監(jiān)督管理局招錄2人《行政職業(yè)能力測驗》高頻考點、難點(含詳細答案)
- RFJ 006-2021 RFP型人防過濾吸收器制造與驗收規(guī)范(暫行)
- 盆腔炎教學查房課件
- 新概念英語課件NCE3-lesson15(共34張)
- GB/T 3683-2023橡膠軟管及軟管組合件油基或水基流體適用的鋼絲編織增強液壓型規(guī)范
- 電視劇《瑯琊榜》特色分析
- 5A+Chapter+1+Changes+at+home+課件(新思維小學英語)
評論
0/150
提交評論