]> git.kaiwu.me - nginx.git/commitdiff
Better handling of late upstream creation.
authorMaxim Dounin <mdounin@mdounin.ru>
Tue, 27 Sep 2011 11:18:51 +0000 (11:18 +0000)
committerMaxim Dounin <mdounin@mdounin.ru>
Tue, 27 Sep 2011 11:18:51 +0000 (11:18 +0000)
Configuration with duplicate upstream blocks defined after first use, i.e.
like

    server {
        ...
        location / {
            proxy_pass http://backend;
        }
    }

    upstream backend { ... }
    upstream backend { ... }

now correctly results in "duplicate upstream" error.

Additionally, upstream blocks defined after first use now handle various
server directive parameters ("weight", "max_fails", etc.).  Previously
configuration like

    server {
        ...
        location / {
            proxy_pass http://backend;
        }
    }

    upstream backend {
        server 127.0.0.1 max_fails=5;
    }

incorrectly resulted in "invalid parameter "max_fails=5"" error.

src/http/ngx_http_upstream.c

index 703b8ff98a5971a25f2411bbbf7aa0e6fe4126c9..7e06b677ec48fa76158e0d80c9f52eeb1fc1bb34 100644 (file)
@@ -4335,6 +4335,10 @@ ngx_http_upstream_add(ngx_conf_t *cf, ngx_url_t *u, ngx_uint_t flags)
             continue;
         }
 
+        if (flags & NGX_HTTP_UPSTREAM_CREATE) {
+            uscfp[i]->flags = flags;
+        }
+
         return uscfp[i];
     }