利用nginx做灰度

pid        logs/nginx.pid;

worker_rlimit_nofile 102400;

events {
    use epoll;
    worker_connections 10240;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent $request_time "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    #sendfile on;
    #tcp_nopush on;
    keepalive_timeout 30;
    tcp_nodelay on;

    gzip on;
    gzip_min_length 1k;
    gzip_http_version 1.1;
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript;
    server_tokens off;

    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_set_header X-Remote-Addr $remote_addr;
    client_max_body_size 10m;

    map $COOKIE_hd $group {
      1 gray;
      default defza;
    }

    upstream gray {
        server 10.10.10.154:8080 max_fails=2;
    }

    upstream defza {
        server 10.10.10.82:8080 max_fails=2;
        server 10.10.10.42:8080 max_fails=2;
        server 10.10.10.40:8080 max_fails=2;
        server 10.10.10.28:8080 max_fails=2;
        server 10.10.10.199:8080 max_fails=2;
        server 10.10.10.47:8080 max_fails=2;
        #server 10.10.10.64:8080 max_fails=2;
        server 10.10.10.198:8080 max_fails=2;
        #server 10.10.10.46:8080 backup;
    }

    server {
        listen 80;
        server_name  localhost;
        include agent_deny.conf;
        access_log off;
        location / {
            proxy_pass http://$group;
        }
        location ^~ /testsrv {
             root html;
        }
        if ($request_uri ~* "(cost\()|(concat\()") { return 519; }
        if ($request_uri ~* "[+|(%20)]union[+|(%20)]") { return 519; }
        if ($request_uri ~* "[+|(%20)]and[+|(%20)]") { return 519; }
        if ($request_uri ~* "[+|(%20)]select[+|(%20)]") { return 519; }
        if ($request_uri ~* "alert") { return 519; }
        if ($request_uri ~* "webRootzpro") { return 519; }
        if ($request_uri ~* "memberAccess") { return 519; }
        if ($request_uri ~* "com.mysql.jdbc.Driver") { return 519; }
        if ($request_uri ~* "etc/passwd") { return 519; }
        if ($request_uri ~* "WEB-INF") { return 519; }
    }

}


你可能感兴趣的:(利用nginx做灰度)