日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

方式一:通過調(diào)節(jié)負(fù)載均衡權(quán)重

負(fù)載均衡 建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價(jià)有效透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。

負(fù)載均衡,英文名稱為L(zhǎng)oad Balance,其意思就是分?jǐn)偟蕉鄠€(gè)操作單元上進(jìn)行執(zhí)行,例如Web服務(wù)器、FTP服務(wù)器、企業(yè)關(guān)鍵應(yīng)用服務(wù)器和其它關(guān)鍵任務(wù)服務(wù)器等,從而共同完成工作任務(wù)。

Nginx 實(shí)現(xiàn)灰度發(fā)布的三種方法總結(jié)

 

http { 
 upstream cluster { 
 ip_hash; #如果你的系統(tǒng)中沒有使用第三方緩存管理工具 ,建議使用此方式
 server 192.168.1.210:80 weight=5; 
 server 192.168.1.211:80 weight=3; 
 server 192.168.1.212:80 weight=1; 
 } 
 
 server { 
 listen 80; 
 
 location / { 
 
 proxy_next_upstream error timeout;
 proxy_redirect off;
 proxy_set_header Host $host;
 #proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Real-IP $http_x_forwarded_for;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 client_max_body_size 100m;
 client_body_buffer_size 256k;
 proxy_connect_timeout 180;
 proxy_send_timeout 180;
 proxy_read_timeout 180;
 proxy_buffer_size 8k;
 proxy_buffers 8 64k;
 proxy_busy_buffers_size 128k;
 proxy_temp_file_write_size 128k;
 proxy_pass http://cluster; 
 } 
 } 
} 

這種方式灰度發(fā)布通過weight來實(shí)現(xiàn),但是這種方式只適合修改節(jié)點(diǎn)的行為,而且要求應(yīng)用都是一模一樣的,其實(shí)質(zhì)作用是,節(jié)點(diǎn)增加或刪除之后,對(duì)負(fù)載能力的調(diào)節(jié),最終目的是為了讓流量最終保持均衡。

方式二.使用Nginx+lua實(shí)現(xiàn)web項(xiàng)目的灰度發(fā)布

location / {
 content_by_lua '
 myIP = ngx.req.get_headers()["X-Real-IP"]
 if myIP == nil then
 myIP = ngx.req.get_headers()["x_forwarded_for"]
 end
 if myIP == nil then
 myIP = ngx.var.remote_addr
 end
 if myIP == "公司出口IP" then
 ngx.exec("@client")
 else
 ngx.exec("@client_test")
 end
 ';
} 
 
location @client{
 proxy_next_upstream error timeout;
 proxy_redirect off;
 proxy_set_header Host $host;
 #proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Real-IP $http_x_forwarded_for;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 client_max_body_size 100m;
 client_body_buffer_size 256k;
 proxy_connect_timeout 180;
 proxy_send_timeout 180;
 proxy_read_timeout 180;
 proxy_buffer_size 8k;
 proxy_buffers 8 64k;
 proxy_busy_buffers_size 128k;
 proxy_temp_file_write_size 128k;
 proxy_pass http://client;
 
}
location @client_test{
 proxy_next_upstream error timeout;
 proxy_redirect off;
 proxy_set_header Host $host;
 #proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Real-IP $http_x_forwarded_for;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 client_max_body_size 100m;
 client_body_buffer_size 256k;
 proxy_connect_timeout 180;
 proxy_send_timeout 180;
 proxy_read_timeout 180;
 proxy_buffer_size 8k;
 proxy_buffers 8 64k;
 proxy_busy_buffers_size 128k;
 proxy_temp_file_write_size 128k;
 proxy_pass http://client_test;
}

由于使用了nginx+lua模塊,這種方式適合很多場(chǎng)景,非常強(qiáng)大,但是問題是你可能需要學(xué)習(xí)很多l(xiāng)ua的語(yǔ)法

方式三.使用http頭信息判斷+權(quán)重(灰度值)

http請(qǐng)求傳輸過程中,會(huì)自動(dòng)帶上User-Agent,Host,Referer,Cookie等信息。我們只需要判斷ip地址段,用戶代理,Cookie中的信息等。我們這里以Cookie為例。

當(dāng)然,這里需要解決兩個(gè)問題:

①首次訪問靜態(tài)頁(yè)面可能不會(huì)產(chǎn)生cookie

②我們需要通過代碼動(dòng)態(tài)設(shè)置路由

③通過weight控制灰度值

我們可以通過一個(gè)例子來解決上述中的②與③的問題

upstream tts_V6 {
 server 192.168.3.81:5280 max_fails=1 fail_timeout=60;
}
upstream tts_V7 {
 server 192.168.3.81:5380 max_fails=1 fail_timeout=60;
}
upstream default { #通過upstream default + weight節(jié)點(diǎn)控制權(quán)重
 server 192.168.3.81:5280 max_fails=1 fail_timeout=60 weight=5;
 server 192.168.3.81:5380 max_fails=1 fail_timeout=60 weight=1;
}
server {
 listen 80;
 server_name test.taotaosou.com;
 access_log logs/test.taotaosou.com.log main buffer=32k;
 #match cookie
 set $group "default";
 if ($http_cookie ~* "tts_version_id=tts1"){ #動(dòng)態(tài)控制路由
 set $group tts_V6;
 }
 if ($http_cookie ~* "tts_version_id=tts2"){
 set $group tts_V7;
 }
 location / { 
 proxy_pass http://$group;
 proxy_set_header Host $host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 index index.html index.htm;
 }
 }

對(duì)于問題①,我們可以在index頁(yè)面通過script來訪問動(dòng)態(tài)頁(yè)面:

<script src="https://test.taotaosou.com/cookieinfo.php" /><script>

此外,我們還要在cookieinfo.php中判斷和生成cookie

<?php
if(!session_id())
{
 session_start();
}
if(!isset($_COOKIE["tts_version_id"]))
{
 $cookieValue = $_SERVER['SERVER_PORT']==5280?"tts1":"tts2";
 setcookie("tts_version_id", $cookieValue, time()+3600, "/");
}
?>

分享到:
標(biāo)簽:Nginx
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定