本篇文章給大家分享的是有關(guān)Nginx中怎么實現(xiàn)集群和負載均衡,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)建站服務(wù)項目包括特克斯網(wǎng)站建設(shè)、特克斯網(wǎng)站制作、特克斯網(wǎng)頁制作以及特克斯網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,特克斯網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到特克斯省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
# 設(shè)置上游服務(wù)器: upstream imgserver{ #weight權(quán)重 maxfails錯誤次數(shù) fail_timeout超時時間.down 表示單前的server暫時不參與負載.其它所有的非backup機器down或者忙的時候,請求backup機器. 在upstream里設(shè)置ip_hash,就可以針對同一個C類地址段中的客戶端選擇同一個后端服務(wù)器可以解決session問題. Sticky基于cookie的負載均衡. ip_hash; # 建議不要和Sticky同時使用; Sticky; #建議不要和ip_hash同時使用; server 192.168.1.100:80; weight:2 max_fails=2 fail_timeout=30s; server 192.168.1.101:80; weight:2 max_fails=2 fail_timeout=30s; server 127.0.0.1:7070 backup; server 127.0.0.1:9090 down; }
# 下游調(diào)用: location ~ \.(jpg|jpeg|png|gif) { #轉(zhuǎn)發(fā)到上游服務(wù)器的地址池 proxy_pass imgserver; # 將用戶的IP信息同時帶過去,要不然,后端服務(wù)器獲得的IP地址將是代理服務(wù)器的IP; proxy_set_header X-Forwarded-For $remote_addr; }
ubuntu 下負載均衡搭建 1準備條件 服務(wù)器最少3臺 修改配置文件: cd /etc/nginx/conf.d/ 1.添加一個配置文件 upstream a.com { server 服務(wù)器IP:端口; server 127.0.0.1:80; server 127.0.0.1:8080; } 2 配置虛擬主機 vim /etc/nginx/sites-available/default server{ listen 80; server_name a.com; location / { proxy_pass http://自己配置;(轉(zhuǎn)發(fā)到哪里) } ln -s /etc/nginx/sites-available/{nidepaizhi} /etc/nginx/sites-enabled/ //檢查配置文件是否有錯 nginx -t //重啟服務(wù)器 nginx -s reload 3其他參數(shù)配置 擴展: 1.輪詢(默認方式) 每個請求按時間順序逐一分配到后端服務(wù)器,如果后端服務(wù)器down掉,能自動剔除 2 weight 指定輪詢幾率,weight和訪問比率成正比,用于后端服務(wù)器性能不均的情況。 upstream bakend { server 服務(wù)器IP:端口 概率值; server 127.0.0.1:80 weight=10; } 3 ip_hash 每個請求按訪問ip的hash結(jié)果分配, 這樣每個訪客固定訪問一個后端服務(wù)器,可以解決session的問題 upstream resinserver{ ip_hash; server 192.168.159.10:8080; server 192.168.159.11:8080; } 4 location / { proxy_pass http://a.com; #這個地址一定是上面定義的負載均衡的名字 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
我之前所常用的策略: 基于cookie值區(qū)別用戶做負載均衡.(在cookie儲存sessionID,通過sessionID進行判斷) 通過redis直接使用redis保存用戶的的登錄信息進行判斷. nginx可以根據(jù)客戶端IP進行負載均衡,在upstream里設(shè)置ip_hash,就可以針對同一個C類地址段中的客戶端選擇同一個后端服務(wù)器,除非那個后端服務(wù)器宕了才會換一個,可以解決session問題.。 Sticky基于cookie的負載均衡. 我現(xiàn)在的均衡策略: 就是不配Sticky或ip_hash直接用按權(quán)重輪訓(xùn)就行了, session同步什么的都不用擔心.現(xiàn)在都把session存在Redis中了.
百度轉(zhuǎn)載的五種均衡分配方式: nginx可以根據(jù)客戶端IP進行負載均衡,在upstream里設(shè)置ip_hash,就可以針對同一個C類地址段中的客戶端選擇同一個后端服務(wù)器,除非那個后端服務(wù)器宕了才會換一個。 nginx的upstream目前支持的5種方式的分配
1、輪詢(默認) 每個請求按時間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉,能自動剔除。 upstream backserver { server 192.168.0.14; server 192.168.0.15; } 2、指定權(quán)重 指定輪詢幾率,weight和訪問比率成正比,用于后端服務(wù)器性能不均的情況。 upstream backserver { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; } 3、IP綁定 ip_hash 每個請求按訪問ip的hash結(jié)果分配,這樣每個訪客固定訪問一個后端服務(wù)器,可以解決session的問題。 upstream backserver { ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; } 4、fair(第三方) 按后端服務(wù)器的響應(yīng)時間來分配請求,響應(yīng)時間短的優(yōu)先分配。 upstream backserver { server server1; server server2; fair; } 5、url_hash(第三方) 按訪問url的hash結(jié)果來分配請求,使每個url定向到同一個后端服務(wù)器,后端服務(wù)器為緩存時比較有效。 upstream backserver { server squid1:3128; server squid2:3128; hash $request_uri; hash_method crc32; } 在需要使用負載均衡的server中增加 proxy_pass http://backserver/; #轉(zhuǎn)發(fā)到哪里去 upstream backserver{ ip_hash; server 127.0.0.1:9090 down; (down 表示單前的server暫時不參與負載) server 127.0.0.1:8080 weight=2; (weight 默認為1.weight越大,負載的權(quán)重就越大) server 127.0.0.1:6060; server 127.0.0.1:7070 backup; (其它所有的非backup機器down或者忙的時候,請求backup機器) } max_fails :允許請求失敗的次數(shù)默認為1.當超過最大次數(shù)時,返回proxy_next_upstream 模塊定義的錯誤 fail_timeout:max_fails次失敗后,暫停的時間
以上就是Nginx中怎么實現(xiàn)集群和負載均衡,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。