Commit Graph

317 Commits

Author SHA1 Message Date
Igor Sysoev
64efecc2b5 allow to use $upstream_... variables in SSI 2011-04-21 10:07:07 +00:00
Igor Sysoev
fde7d51392 fix case when a host in fastcgi_pass, scgi_pass, and uwsgi_pass
is given by expression and refers to a defined upstream
2011-04-04 10:43:21 +00:00
Igor Sysoev
9135a0e022 move debug logging inside ngx_http_file_cache_free() 2010-07-28 15:56:56 +00:00
Igor Sysoev
406a68003c several changes in cache cleanup handling:
*) now ngx_http_file_cache_cleanup() uses ngx_http_file_cache_free()
*) ngx_http_file_cache_free() interface has been changed to accept r->cache
   ngx_http_file_cache_cleanup() must use r->cache, but not r, because
   there can be several r->cache's during request processing, r->cache may
   be NULL at request finalising, etc.
*) test if updating request does not complete correctly
2010-07-28 15:49:34 +00:00
Igor Sysoev
6af21b7cda fix r3707: cache node should be freed be a response is not cached 2010-07-27 15:26:33 +00:00
Igor Sysoev
3cf3100977 fix typo 2010-07-27 13:04:13 +00:00
Igor Sysoev
f297d0dd27 an intercepted error code was not cached 2010-07-19 15:31:46 +00:00
Igor Sysoev
cc963cd7e2 style fix 2010-07-19 15:29:16 +00:00
Igor Sysoev
f7d659aa52 proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypass 2010-07-19 09:36:04 +00:00
Igor Sysoev
6a47b43234 rename ngx_http_file_cache_create() to ngx_http_file_cache_new() 2010-07-16 10:01:49 +00:00
Igor Sysoev
9aa3d7f667 ngx_http_file_cache_create() 2010-07-15 14:01:02 +00:00
Igor Sysoev
f3870c66df use ngx_http_test_predicates(), ngx_http_set_predicate_slot()
delete ngx_http_cache(), ngx_http_no_cache_set_slot()
2010-07-14 11:15:45 +00:00
Igor Sysoev
0bd1809f05 treat Set-Cookie as a header that forbids caching 2010-07-02 09:49:27 +00:00
Igor Sysoev
7e14b50c28 use shared ngx_http_upstream_ignore_headers_masks[] 2010-07-02 09:25:38 +00:00
Igor Sysoev
de0b1d6f12 remove r->zero_in_uri 2010-05-24 12:35:10 +00:00
Igor Sysoev
9b2763a245 proxy_no_cache and fastcgi_no_cache 2010-05-24 11:01:05 +00:00
Igor Sysoev
402b2f07c2 do not cache response if it has "no-store" or "private"
in "Cache-Control" header
2010-05-14 12:04:58 +00:00
Igor Sysoev
05b1a8f1e3 ngx_str_set() and ngx_str_null() 2010-05-14 09:56:37 +00:00
Igor Sysoev
328df7a5cc use ngx_min() and ngx_max() 2010-05-14 09:55:33 +00:00
Igor Sysoev
5739072cfe fix segfault: ngx_http_upstream_cleanup() cleans r->cleanup,
the bug had been introduced in r3419
2010-05-14 09:22:58 +00:00
Igor Sysoev
4e20f24b5b delete u->cleanup mark, this fixes large values in $upstream_response_time,
the bug had been introduced in r3007
2010-01-29 16:45:14 +00:00
Igor Sysoev
e146ebd813 allow to handle 301/302 in error_page 2009-12-23 15:31:16 +00:00
Igor Sysoev
bd375b9566 fix typo 2009-12-23 14:22:17 +00:00
Igor Sysoev
601ab90cd4 fix handling cached HTTP/0.9 response 2009-11-29 20:48:01 +00:00
Igor Sysoev
8b816d88a9 change ngx_parse_addr() interface 2009-11-02 16:11:06 +00:00
Igor Sysoev
72e928755b proxy_bind, fastcgi_bind, and memcached_bind 2009-11-02 15:24:02 +00:00
Igor Sysoev
671236993a test comma separator in "Cache-Control" 2009-10-08 14:22:00 +00:00
Igor Sysoev
136dd8d1e6 use real file cache length, this fixes cache size counting for responses
without "Content-Length" header and 304 responses.
2009-10-07 12:55:58 +00:00
Igor Sysoev
65166cfa2f fix request counter in resolver handling, the bug was introduced in r3050 2009-09-28 12:31:47 +00:00
Igor Sysoev
a552ab476e check unsafe Destination 2009-09-25 09:30:06 +00:00
Igor Sysoev
12a7d493d4 fix request counter for X-Accel-Redirect, the bug was introduced in r3050 2009-09-13 13:45:32 +00:00
Igor Sysoev
3e751480b2 increase request counter before an upstream cleanup because the cleanup
decreases the counter via ngx_http_finalize_request(r, NGX_DONE),
the bug was introduced in r3050
2009-09-08 11:37:50 +00:00
Igor Sysoev
8013a83067 clean cache updating state if a response has uncacheable code or
cache prohibitive headers
2009-09-04 09:57:38 +00:00
Igor Sysoev
8b8e995eb8 do not create cache key in AIO invocation 2009-08-28 11:23:50 +00:00
Igor Sysoev
a39d4e1aee fix sending a cached file using AIO 2009-08-28 11:22:27 +00:00
Igor Sysoev
6fb506a215 directio_alignment 2009-08-28 08:15:55 +00:00
Igor Sysoev
a962506498 FreeBSD and Linux AIO support 2009-08-28 08:12:35 +00:00
Igor Sysoev
5297d456d8 axe r->connection->destroyed testing 2009-08-26 16:14:57 +00:00
Igor Sysoev
5374610ace process upstream ETag header 2009-08-23 16:10:39 +00:00
Igor Sysoev
9db33c9234 fix copy destination name length, introduced in r3025 2009-08-20 13:37:26 +00:00
Igor Sysoev
b7a09c5523 allow cross device temporary files atomic copying:
*) ngx_copy_file()
*) delete ngx_ext_rename_file_t.log_rename_error and .rename_error fields
2009-08-12 12:05:33 +00:00
Igor Sysoev
22fc3e656e fix segfault introduced in r3007 2009-08-07 13:16:42 +00:00
Igor Sysoev
15b7420aa6 ngx_http_upstream_create() to cleanup the previous upstream after
internal redirect
2009-07-27 13:25:29 +00:00
Igor Sysoev
ce1ba38b93 fix handling "Last-Modified" and "Accept-Ranges" for upstream responses 2009-07-27 13:14:45 +00:00
Igor Sysoev
7335dfa4b6 allow to proxy_pass_header/fastcgi_pass_header "X-Accel-Redirect",
"X-Accel-Limit-Rate", "X-Accel-Buffering", and "X-Accel-Charset"
2009-07-27 12:06:12 +00:00
Igor Sysoev
2e9542b910 fix ngx_http_send_special() for subrequests handled by perl 2009-07-09 13:32:51 +00:00
Igor Sysoev
704462ac85 fix building --without-http-cache, broken in r2953 2009-06-22 09:10:50 +00:00
Igor Sysoev
ad0d2fced4 fix segfault if there is error_page 401, proxy_intercept_errors is on
and backend does not return "WWW-Authenticate" header
2009-06-18 14:28:50 +00:00
Igor Sysoev
bd9eda9986 $upstream_cache_status 2009-06-18 13:34:47 +00:00
Igor Sysoev
0775182312 fix building --without-http-cache, broken in r2930 2009-06-15 14:25:08 +00:00
Igor Sysoev
83c93ba109 inherit proxy_set_header, proxy_hide_header, and fastcgi_hide_header
only if cache settings are similar
2009-06-08 12:33:11 +00:00
Igor Sysoev
55192e7470 proxy_cache_use_stale/fastcgi_cache_use_stale updating 2009-06-06 18:49:47 +00:00
Igor Sysoev
fa524e9063 delete useless r->cache->uses 2009-06-06 17:48:54 +00:00
Igor Sysoev
260c4321d7 return NULL instead of NGX_CONF_ERROR on a create conf failure 2009-06-02 16:09:44 +00:00
Igor Sysoev
60190068ab reset content_type hash value, this fixes a bug when XSLT responses
could not be processed by SSI, charset, and gzip filters
2009-05-25 09:06:29 +00:00
Igor Sysoev
5ed3691b6e proxy_cache_methods and fastcgi_cache_methods 2009-05-19 13:27:27 +00:00
Igor Sysoev
980491302b use already given variable 2009-05-19 12:55:26 +00:00
Igor Sysoev
731e6a9b11 style fix 2009-05-14 16:24:39 +00:00
Igor Sysoev
dbebf0bdbc fix building --without-http-cache
the bug had been appeared in r2806
2009-05-08 20:14:35 +00:00
Igor Sysoev
c340a2841b delete level event of appropriate type, this should fix select()'s EBADF,
WSAENOTSOCK, and "select ready != events" alerts
2009-05-06 08:40:44 +00:00
Igor Sysoev
25870d8ea2 reinit proxy/fastcgi header parser before ngx_http_upstream_cache_send() 2009-05-05 17:18:33 +00:00
Igor Sysoev
b4097d6093 proxy/fastcgi_cache_use_stale http_50x did not work 2009-05-05 15:17:00 +00:00
Igor Sysoev
b01c9cc10e proxy_ignore_headers and fastcgi_ignore_headers 2009-04-30 16:15:07 +00:00
Igor Sysoev
df585ef949 get a full response if the response is cacheable or storable even
a client has closed connection prematurely
2009-04-27 11:20:55 +00:00
Igor Sysoev
9bd1010164 fix building --without-http-cache, introduced in r2664 and later 2009-04-15 12:25:51 +00:00
Igor Sysoev
c796dd263a shutdown client connection for cacheable header only responses 2009-04-15 11:19:27 +00:00
Igor Sysoev
e41e724726 support 304 for cacheable responses 2009-04-15 11:17:38 +00:00
Igor Sysoev
ea8536b821 support HEAD in proxy cache 2009-04-15 09:53:22 +00:00
Igor Sysoev
a655f363e2 style fix 2009-04-10 14:49:51 +00:00
Igor Sysoev
909b36ab1f do not call ngx_http_file_cache_free() if a response is not cacheable 2009-04-10 14:48:41 +00:00
Igor Sysoev
49ed98d1eb add debug logging 2009-04-10 14:47:18 +00:00
Igor Sysoev
21a3c66a87 support Cache-Control no-cache and max-age in cache 2009-04-04 17:35:40 +00:00
Igor Sysoev
054c505050 update r2664 2009-04-04 17:22:26 +00:00
Igor Sysoev
c8298bf3ee support Expires in cache 2009-04-03 15:48:19 +00:00
Igor Sysoev
db8f150044 fix r2664: ..._cache_valid did not work for stale responses 2009-04-03 15:47:45 +00:00
Igor Sysoev
c1713aadf5 zero field 2009-04-03 15:44:41 +00:00
Igor Sysoev
0eea247b1d support X-Accel-Expires in cache 2009-04-03 14:33:34 +00:00
Igor Sysoev
56f86505db cache GET requests only 2009-04-03 12:06:04 +00:00
Igor Sysoev
52859f2f13 a prelimiary proxy cache support 2009-03-23 13:14:51 +00:00
Igor Sysoev
1f4220ee86 small optimization: " == NGX_ERROR" > " != NGX_OK" 2009-02-24 10:42:23 +00:00
Igor Sysoev
7a86f07057 fix fastcgi_store 2009-01-21 20:54:40 +00:00
Igor Sysoev
6019a7621b proxy/fastcgi_store did not delete incomplete files 2009-01-16 13:57:00 +00:00
Igor Sysoev
f7204173f9 in miss case memcached module returned END instead of default 404 page body
the bug has been introduced in r2269
2009-01-15 13:10:45 +00:00
Igor Sysoev
302cedceb0 variable support for unix sockets in fastcgi_pass and proxy_pass 2008-12-23 19:35:12 +00:00
Igor Sysoev
cf6c582b9a fix segfault 2008-12-17 16:07:58 +00:00
Igor Sysoev
371766c0a5 $upstream_response_length 2008-12-11 15:30:52 +00:00
Igor Sysoev
524f54f56d use ngx_ext_rename_file() for single file MOVE 2008-12-10 14:53:45 +00:00
Igor Sysoev
b9409a8e25 use already available r and u instead of ev 2008-12-09 17:25:03 +00:00
Igor Sysoev
3e15a9712a fix r2378, run posted requests after upstream event handling 2008-12-08 18:28:06 +00:00
Igor Sysoev
851cd73f1d *) refactor subrequest handling, now they run as separate posted requests
*) now $upstream_addr, $upstream_status, $upstream_response_time can be used
   with log_subrequest
2008-12-08 14:23:20 +00:00
Igor Sysoev
15fbaa6612 read and process upstream header in cycle,
this fixes the case when local FastCGI server sends many warnings in stderr
2008-12-01 14:08:00 +00:00
Igor Sysoev
a485909174 memcached response was stored in variable with END 2008-11-12 21:01:01 +00:00
Igor Sysoev
694c84975d fix r1913 2008-10-30 15:59:10 +00:00
Igor Sysoev
797c6ef394 *) ngx_http_upstream_test_next()
*) add proxy_next_upstream http_502 and http_504
*) fix http_503
2008-09-30 15:39:02 +00:00
Igor Sysoev
d01eea1e18 ngx_http_upstream_intercept_errors() 2008-09-30 14:57:09 +00:00
Igor Sysoev
316542508b strip charset name quotes 2008-09-09 11:58:45 +00:00
Igor Sysoev
916ee8ecea proxy_ssl_session_reuse 2008-08-17 17:47:52 +00:00
Igor Sysoev
f60dde9767 disable original URI usage in proxy_pass after X-Accel-Redirect 2008-08-17 17:44:08 +00:00
Igor Sysoev
ac721d0647 if upstream sent a location header without status use 302 2008-08-04 14:53:16 +00:00
Igor Sysoev
7f6b2ffc60 *) back out r2040
*) refactor ngx_palloc()
*) introduce ngx_pnalloc()
*) additional pool blocks have smaller header
2008-06-17 15:00:30 +00:00
Igor Sysoev
6a2ea3f544 small fix 2008-04-17 14:32:11 +00:00
Igor Sysoev
523e09ee1a fix segfault 2008-04-11 09:15:07 +00:00
Igor Sysoev
f576f0d2bc quick resolving handles u->resolved->ctx by itself 2008-04-09 14:20:17 +00:00
Igor Sysoev
a4ec6869fc fix peer sendfile capability 2008-04-04 12:07:13 +00:00
Igor Sysoev
9ff26ce124 use ngx_ext_rename_file() in proxy/fastcgi_store 2008-03-17 13:07:35 +00:00
Igor Sysoev
cca6000247 ngx_resolve_name() frees ctx on immediate failure 2008-03-05 07:30:44 +00:00
Igor Sysoev
8efe926dc5 fix r1903 2008-03-03 20:04:06 +00:00
Igor Sysoev
7c15b75cc7 fix memory leak in long-lived non buffered connections 2008-03-03 10:42:00 +00:00
Igor Sysoev
d3434dfa63 check port in upstream list 2008-02-21 13:58:45 +00:00
Igor Sysoev
be0a61e618 test response length in proxy/fastcgi_store 2008-02-11 13:14:56 +00:00
Igor Sysoev
0123ee3adf optimization 2007-12-26 13:24:57 +00:00
Igor Sysoev
6d4b5a1f86 $upstream_addr did not contain last address, the bug was introduced in r1659 2007-12-11 16:26:56 +00:00
Igor Sysoev
3fc85af2fc style fix: remove trailing spaces 2007-12-10 12:30:09 +00:00
Igor Sysoev
f2932dcbe5 optimize r->upstream usage 2007-12-10 12:29:43 +00:00
Igor Sysoev
cb54061885 *) now ngx_conf_set_str_array_slot() tests NGX_CONF_UNSET_PTR
this fixes fastcgi_catch_stderr segfault introduced in r1453
*) ngx_http_upstream_hide_headers_hash()
*) proxy/fastcgi pass_header/hide_header use
   ngx_http_upstream_hide_headers_hash()
2007-12-09 18:03:20 +00:00
Igor Sysoev
5a55d7104b return NGX_ERROR instead of NGX_HTTP_INTERNAL_SERVER_ERROR in u->parse_header() 2007-12-09 08:22:35 +00:00
Igor Sysoev
27dd6a62bd use malloc() in ngx_win32_rename_file, set crit level instead of error 2007-12-07 19:57:13 +00:00
Igor Sysoev
6b2fce430b allow to use IP addresses without defined resolver 2007-12-03 10:05:19 +00:00
Igor Sysoev
96dd8af8e6 proxy_pass variables support 2007-11-27 13:34:13 +00:00
Igor Sysoev
32717eb60c r->headers_out.refresh 2007-11-27 11:56:18 +00:00
Igor Sysoev
685fd08753 set r->headers_out.location for non-local redirects 2007-11-27 11:52:37 +00:00
Igor Sysoev
1d04b14c09 64-bit time_t compatibility 2007-11-15 14:26:36 +00:00
Igor Sysoev
2d3f3f6eb6 fix English grammar 2007-10-14 18:56:15 +00:00
Igor Sysoev
7ed63ee75f use pool instead of ngx_conf_t 2007-10-08 08:55:12 +00:00
Igor Sysoev
7973964b3f optimization 2007-10-08 04:59:26 +00:00
Igor Sysoev
f53294103b pass length clearly 2007-10-01 12:57:47 +00:00
Igor Sysoev
0659720dc8 use ngx_strstrn() and ngx_strcasestrn() 2007-09-26 19:26:14 +00:00
Igor Sysoev
4b96baa417 u_char* is enough to keep file name 2007-09-15 17:11:06 +00:00
Igor Sysoev
9e4b7276f9 connection error should be logged with "connecting to upstream" action,
the bug was introduced in r1154
2007-09-09 18:43:16 +00:00
Igor Sysoev
3dea919675 read EOF of header only responses in non-buffered proxying 2007-09-09 18:32:53 +00:00
Igor Sysoev
e101338634 upstream sendfile bit was overridden by r->connection->sendfile 2007-08-14 20:44:09 +00:00
Igor Sysoev
6876bcdad6 backup upstream servers 2007-08-09 13:54:33 +00:00
Igor Sysoev
32b787560a fix case when two directives
proxy_pass   http://backend;
    proxy_pass   https://backend;
both use one port - 80 or 443, that was defined first.
2007-07-23 12:35:21 +00:00
Igor Sysoev
fbd9b4399f proxy_store and fastcgi_store were changed,
proxy_store_access and fastcgi_store_access were added
2007-07-13 08:30:34 +00:00
Igor Sysoev
58feb53eb4 proxy_store and fastcgi_store 2007-07-12 11:19:05 +00:00
Igor Sysoev
8b0a3d2810 fix segfault when session was freed twice 2007-07-10 21:04:37 +00:00
Igor Sysoev
def1e7439f if subrequest response was buffered in file, then subrequest was finalized
with 0 code, ngx_http_writer() was not set, and response part in file was lost
2007-06-17 09:29:15 +00:00
Igor Sysoev
84cc2cca53 style fix 2007-06-07 14:33:02 +00:00
Igor Sysoev
29f5912635 $upstream_addr 2007-04-23 16:56:17 +00:00
Igor Sysoev
e0f866273f store the upstream states before X-Accel-Redirect to a next upstream 2007-04-18 20:23:19 +00:00
Igor Sysoev
fb958946b5 style fix: remove tabs 2007-04-18 15:21:28 +00:00
Igor Sysoev
2723361e76 $upstream_http_... variables 2007-04-10 07:08:06 +00:00
Igor Sysoev
24a95944a7 separate ngx_http_upstream_test_connect() and
use it in ngx_http_upstream_process_header() path too
2007-03-31 15:37:09 +00:00
Igor Sysoev
77d7f80285 fix segfault if upstream sends trailing ";" in "charset=" 2007-03-23 11:33:47 +00:00
Igor Sysoev
7b2d87ffa0 add debug logging 2007-02-15 10:00:59 +00:00
Igor Sysoev
722231f407 ngx_strcasecmp()/ngx_strncasecmp() 2007-02-14 18:51:19 +00:00
Igor Sysoev
f15b839a88 log a right subrequest 2007-02-09 13:49:14 +00:00
Igor Sysoev
8ff1e3251c fix segfault when client_body_in_file_only is on, the body is not passed
to upstream, and nginx tries next upstream
2007-01-19 12:57:02 +00:00
Igor Sysoev
ae2006b2fe a non-active client connection must not closed after send timeout 2007-01-19 12:22:32 +00:00
Igor Sysoev
8488a1ce11 allow the upstream modules to send a header only 2007-01-15 17:12:43 +00:00