借住Nginx實現負載均衡和灰度發佈的功能 原

Nginx實現灰度發佈的功能

1. 對URL進行單獨的過濾發佈

upstream A {
        ip_hash;
        server 10.0.XX.XX:9000;
	    server 10.0.XX.XX:9010;
    }
upstream B {	
	    #server 10.0.5.76:9000;
        server 10.0.5.76:9010;
}
server {
        listen       80;
        server_name  www.xxxx.com;
        #charset koi8-r;
        access_log  logs/host.xxx.log  main;

        location / {
            proxy_pass   http://A;
			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;
        } 
       	location ~ /print/xxxInfo {
		 	proxy_pass   http://B;
			proxy_set_header  Host            $host; 
			proxy_set_header  X-Real-IP        $remote_addr; 
			proxy_set_header  X-Forwarded-For                    $proxy_add_x_forwarded_for;
			 proxy_read_timeout 150;
          } 	
	#location ~ /mps/xxxInfo {
	#			return 500;
	#		}
	##開啓後直接封掉某個請求。
    #location ~ /mps/xxxB {
	#			return 500;
	#}    
    }	

2. 針對IP地址進行過濾

如果是內部IP,則反向代理到hilinux_02(預發佈環境);如果不是則反向代理到hilinux_01(生產環境)。

upstream hilinux_01 {
    server 192.168.1.100:8080 max_fails=1 fail_timeout=60;
}

upstream hilinux_02 {
    server 192.168.1.200:8080 max_fails=1 fail_timeout=60;
}

upstream default {
    server 192.168.1.100:8080 max_fails=1 fail_timeout=60;
}

server {
  listen 80;
  server_name  www.hi-linux.com;
  access_log  logs/www.hi-linux.com.log  main;

  set $group default;
  if ($remote_addr ~ "211.118.119.11") {
      set $group hilinux_02;
  }

 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;
  }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章