Nginx http 反向代理高級應用
是Nginx可以基於ngx_http_upstream_module模塊提供服務器分組轉發、權重分配、狀態監測、調度算法等高級功能。 http upstream配置參數: upstream name #自定義一組服務器,配置在http內;指定upstream服務器組的名稱,名稱中不能包含"_",否則會報錯;upstream可以和server配置在一個文件中,也可以單獨一個文件,但是upstream不能配置在server里面。 server address parameters; address可以配置為IP、域名、unix套接字; parameters參數可以配置下面幾種: weight=number #設置權重,默認為1。 max_conns=number #給當前server設置最大活動鏈接數,默認為0表示沒有限制。 max_fails=number #對后端服務器連續監測失敗多少次就標記為不可用。 fail_timeout=time #對后端服務器的單次監測超時時間,默認為10秒。 backup #設置為備份服務器,當所有服務器不可用時將重新啟用次服務器。 down #標記為down狀態。 resolve #當server定義的是主機名的時候,當A記錄發生變化會自動應用新IP而不用重啟Nginx。 hash KEY consistent; #基於指定key做hash計算,使用consistent參數,將使用ketama一致性hash算法,適用於后端是Cache服務器(如varnish)時使用,consistent定義使用一致性hash運算,一致性hash基於取模運算。KEY可以設置為$request_uri,基於用戶的請求的uri做hash運算。 ip_hash; #源地址hash調度方法,基於的客戶端的remote_addr(源地址)做hash計算,以實現會話保持。 least_conn; #最少連接調度算法,優先將客戶端請求調度到當前連接最少的后端服務器。 注:調度算法需要設置在upstream中;默認調度算法是輪詢。
實現nginx http反向代理后端多台服務器:
upstream xxx-app1 { server 192.168.38.37:80 weight=1 fail_timeout=5s max_fails=3; server 192.168.38.47:80 weight=1 fail_timeout=5s max_fails=3; } server { listen 80; server_name www.xxxpc.net; location /web { index index.html; #需要指定默認頁面 proxy_pass http://xxx-app1; #指定upstream分組的名稱 } }