comparison src/http/modules/proxy/ngx_http_proxy_header.c @ 28:7ca9bdc82b3f NGINX_0_1_14

nginx 0.1.14 *) Feature: the autoconfiguration directives: --http-client-body-temp-path=PATH, --http-proxy-temp-path=PATH, and --http-fastcgi-temp-path=PATH *) Change: the directory name for the temporary files with the client request body is specified by directive client_body_temp_path, by default it is <prefix>/client_body_temp. *) Feature: the ngx_http_fastcgi_module and the directives: fastcgi_pass, fastcgi_root, fastcgi_index, fastcgi_params, fastcgi_connect_timeout, fastcgi_send_timeout, fastcgi_read_timeout, fastcgi_send_lowat, fastcgi_header_buffer_size, fastcgi_buffers, fastcgi_busy_buffers_size, fastcgi_temp_path, fastcgi_max_temp_file_size, fastcgi_temp_file_write_size, fastcgi_next_upstream, and fastcgi_x_powered_by. *) Bugfix: the "[alert] zero size buf" error; bug appeared in 0.1.3. *) Change: the URI must be specified after the host name in the proxy_pass directive. *) Change: the %3F symbol in the URI was considered as the argument string start. *) Feature: the unix domain sockets support in the ngx_http_proxy_module. *) Feature: the ssl_engine and ssl_ciphers directives. Thanks to Sergey Skvortsov for SSL-accelerator.
author Igor Sysoev <http://sysoev.ru>
date Tue, 18 Jan 2005 00:00:00 +0300
parents 4b2dafa26fe2
children 72eb30262aac
comparison
equal deleted inserted replaced
27:66901c2556fd 28:7ca9bdc82b3f
24 r = p->request; 24 r = p->request;
25 25
26 part = &headers_in->headers.part; 26 part = &headers_in->headers.part;
27 h = part->elts; 27 h = part->elts;
28 28
29 #if 0 29 for (i = 0; /* void */; i++) {
30 h = headers_in->headers.elts;
31 for (i = 0; i < headers_in->headers.nelts; i++) {
32 #endif
33
34 for (i = 0 ; /* void */; i++) {
35 30
36 if (i >= part->nelts) { 31 if (i >= part->nelts) {
37 if (part->next == NULL) { 32 if (part->next == NULL) {
38 break; 33 break;
39 } 34 }
111 if (&h[i] == headers_in->etag) { 106 if (&h[i] == headers_in->etag) {
112 r->headers_out.etag = ho; 107 r->headers_out.etag = ho;
113 continue; 108 continue;
114 } 109 }
115 110
111 #if (NGX_HTTP_GZIP)
116 if (&h[i] == headers_in->content_encoding) { 112 if (&h[i] == headers_in->content_encoding) {
117 r->headers_out.content_encoding = ho; 113 r->headers_out.content_encoding = ho;
118 continue; 114 continue;
119 } 115 }
116 #endif
120 117
121 if (&h[i] == headers_in->last_modified) { 118 if (&h[i] == headers_in->last_modified) {
122 r->headers_out.last_modified = ho; 119 r->headers_out.last_modified = ho;
123 /* TODO: update r->headers_out.last_modified_time */ 120 /* TODO: update r->headers_out.last_modified_time */
124 continue; 121 continue;
167 164
168 if (!(location = ngx_list_push(&r->headers_out.headers))) { 165 if (!(location = ngx_list_push(&r->headers_out.headers))) {
169 return NGX_ERROR; 166 return NGX_ERROR;
170 } 167 }
171 168
172 if (uc->url.len > loc->value.len 169 if (p->lcf->preserve_host
170 || uc->url.len > loc->value.len
173 || ngx_rstrncmp(loc->value.data, uc->url.data, uc->url.len) != 0) 171 || ngx_rstrncmp(loc->value.data, uc->url.data, uc->url.len) != 0)
174 { 172 {
175 173
176 /* 174 /*
177 * we do not set r->headers_out.location here to avoid the handling 175 * we do not set r->headers_out.location here to avoid the handling