diff src/http/modules/ngx_http_fastcgi_module.c @ 212:56688ed172c8 NGINX_0_3_53

nginx 0.3.53 *) Change: the "add_header" directive adds the string to 204, 301, and 302 responses. *) Feature: the "server" directive in the "upstream" context supports the "weight" parameter. *) Feature: the "server_name" directive supports the "*" wildcard. *) Feature: nginx supports the request body size more than 2G. *) Bugfix: if a client was successfully authorized using "satisfy_any on", then anyway the message "access forbidden by rule" was written in the log. *) Bugfix: the "PUT" method may erroneously not create a file and return the 409 code. *) Bugfix: if the IMAP/POP3 backend returned an error, then nginx continued proxying anyway.
author Igor Sysoev <http://sysoev.ru>
date Fri, 07 Jul 2006 00:00:00 +0400
parents 3866d57d9cfd
children 0ad9eeb6ac7f
line wrap: on
line diff
--- a/src/http/modules/ngx_http_fastcgi_module.c
+++ b/src/http/modules/ngx_http_fastcgi_module.c
@@ -1565,6 +1565,7 @@ ngx_http_fastcgi_merge_loc_conf(ngx_conf
     uintptr_t                    *code;
     ngx_str_t                    *header;
     ngx_uint_t                    i, j;
+    ngx_peer_t                   *peer;
     ngx_array_t                   hide_headers;
     ngx_keyval_t                 *src;
     ngx_hash_key_t               *hk;
@@ -1693,20 +1694,23 @@ ngx_http_fastcgi_merge_loc_conf(ngx_conf
                                |NGX_HTTP_UPSTREAM_FT_ERROR
                                |NGX_HTTP_UPSTREAM_FT_TIMEOUT));
 
-    ngx_conf_merge_unsigned_value(conf->upstream.max_fails,
+    ngx_conf_merge_uint_value(conf->upstream.max_fails,
                               prev->upstream.max_fails, 1);
 
     ngx_conf_merge_sec_value(conf->upstream.fail_timeout,
                               prev->upstream.fail_timeout, 10);
 
-    if (conf->upstream_peers && !conf->upstream_peers->balanced) {
+    if (conf->upstream_peers) {
+        peer = conf->upstream_peers->peers->peer;
         for (i = 0; i < conf->upstream_peers->peers->number; i++) {
-            conf->upstream_peers->peers->peer[i].weight = 1;
-            conf->upstream_peers->peers->peer[i].max_fails =
-                                                   conf->upstream.max_fails;
-            conf->upstream_peers->peers->peer[i].fail_timeout =
-                                                   conf->upstream.fail_timeout;
+            ngx_conf_init_uint_value(peer[i].weight, 1);
+            peer[i].current_weight = peer[i].weight;
+            ngx_conf_init_uint_value(peer[i].max_fails,
+                              conf->upstream.max_fails);
+            ngx_conf_init_value(peer[i].fail_timeout,
+                              conf->upstream.fail_timeout);
         }
+
     }
 
     ngx_conf_merge_path_value(conf->upstream.temp_path,