Commit Graph

179 Commits

Author SHA1 Message Date
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
Igor Sysoev
bf3aaac7ac rewritten upstream 2006-12-12 16:46:16 +00:00
Igor Sysoev
2fb2a8dbf9 upstream name was tried to resolve 2006-12-11 15:12:07 +00:00
Igor Sysoev
e60b99f1d0 TCP upstreams always used the first TCP upstream with the same name 2006-12-11 08:25:03 +00:00
Igor Sysoev
8f98581bbf the previous fix does not actually fix overflow 2006-12-06 11:33:18 +00:00
Igor Sysoev
8b6844c747 fix msec overflow 2006-12-05 20:30:05 +00:00
Igor Sysoev
3d2fd18a39 upstream choice modules 2006-12-04 16:46:13 +00:00
Igor Sysoev
a8c54c082c axe old % log format 2006-11-27 14:46:15 +00:00
Igor Sysoev
eb885fafd2 fix negative upstream response time 2006-11-15 20:51:07 +00:00
Igor Sysoev
37188918ed style fix: remove trailing spaces 2006-10-17 16:13:49 +00:00
Igor Sysoev
960100e371 <!--#include virtual=... set=... --> 2006-10-13 15:20:10 +00:00
Igor Sysoev
cea316dbae not do ngx_http_upstream_finalize_request() twice 2006-10-10 13:17:58 +00:00
Igor Sysoev
e3fbaeaffe fix building introduced by previous commit 2006-10-10 13:12:13 +00:00
Igor Sysoev
52ec2c48b9 finalize nonbuffered request on timeout 2006-10-10 13:11:06 +00:00
Igor Sysoev
aec57e2613 align hash bucket size to cache line 2006-10-09 14:03:16 +00:00
Igor Sysoev
627b8aa3bd fix hash building on unknown 64-bit platform 2006-10-06 15:06:02 +00:00
Igor Sysoev
da173abde0 nginx-0.4.0-RELEASE import
*) Change in internal API: the HTTP modules initialization was moved
       from the init module phase to the HTTP postconfiguration phase.

    *) Change: now the request body is not read beforehand for the
       ngx_http_perl_module: it's required to start the reading using the
       $r->has_request_body method.

    *) Feature: the ngx_http_perl_module supports the DECLINED return code.

    *) Feature: the ngx_http_dav_module supports the incoming "Date" header
       line for the PUT method.

    *) Feature: the "ssi" directive is available inside the "if" block.

    *) Bugfix: a segmentation fault occurred if there was an "index"
       directive with variables and the first index name was without
       variables; the bug had appeared in 0.1.29.
2006-08-30 10:39:17 +00:00
Igor Sysoev
ef31643049 nginx-0.3.59-RELEASE import
*) Feature: now is possible to do several redirection using the
       "error_page" directive.

    *) Bugfix: the "dav_access" directive did not support three parameters.

    *) Bugfix: the "error_page" directive did not changes the
       "Content-Type" header line after the "X-Accel-Redirect" was used;
       the bug had appeared in 0.3.58.
2006-08-16 13:09:33 +00:00
Igor Sysoev
08e63d46de nginx-0.3.58-RELEASE import
*) Feature: the "error_page" directive supports the variables.

    *) Change: now the procfs interface instead of sysctl is used on Linux.

    *) Change: now the "Content-Type" header line is inherited from first
       response when the "X-Accel-Redirect" was used.

    *) Bugfix: the "error_page" directive did not redirect the 413 error.

    *) Bugfix: the trailing "?" did not remove old arguments if no new
       arguments were added to a rewritten URI.

    *) Bugfix: nginx could not run on 64-bit FreeBSD 7.0-CURRENT.
2006-08-14 15:09:38 +00:00
Igor Sysoev
c55a104fcb nginx-0.3.57-RELEASE import
*) Feature: the $ssl_client_serial variable.

    *) Bugfix: in the "!-e" operator of the "if" directive.
       Thanks to Andrian Budanstov.

    *) Bugfix: while a client certificate verification nginx did not send
       to a client the required certificates information.

    *) Bugfix: the $document_root variable did not support the variables in
       the "root" directive.
2006-08-09 19:59:45 +00:00
Igor Sysoev
8f1255877c nginx-0.3.55-RELEASE import
*) Feature: the "stub" parameter in the "include" SSI command.

    *) Feature: the "block" SSI command.

    *) Feature: the unicode2nginx script was added to contrib.

    *) Bugfix: if a "root" was specified by variable only, then the root
       was relative to a server prefix.

    *) Bugfix: if the request contained "//" or "/./" and escaped symbols
       after them, then the proxied request was sent unescaped.

    *) Bugfix: the $r->headers_in("Cookie") of the ngx_http_perl_module now
       returns all "Cookie" header lines.

    *) Bugfix: a segmentation fault occurred if
       "client_body_in_file_only on" was used and nginx switched to a next
       upstream.

    *) Bugfix: on some condition while reconfiguration character codes
       inside the "charset_map" may be treated invalid; the bug had
       appeared in 0.3.50.
2006-07-28 15:16:17 +00:00
Igor Sysoev
bb28b6d3a4 nginx-0.3.54-RELEASE import
*) Feature: nginx now logs the subrequest information to the error log.

    *) Feature: the "proxy_next_upstream", "fastcgi_next_upstream", and
       "memcached_next_upstream" directives support the "off" parameter.

    *) Feature: the "debug_connection" directive supports the CIDR address
       form.

    *) Bugfix: if a response of proxied server or FastCGI server was
       converted from UTF-8 or back, then it may be transferred incomplete.

    *) Bugfix: the $upstream_response_time variable had the time of the
       first request to a backend only.

    *) Bugfix: nginx could not be built on amd64 platform; the bug had
       appeared in 0.3.53.
2006-07-11 13:20:19 +00:00
Igor Sysoev
1765f47544 nginx-0.3.53-RELEASE import
*) 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.
2006-07-07 16:33:19 +00:00
Igor Sysoev
e240762c6c nginx-0.3.51-RELEASE import
*) Bugfix: the "<" symbols might disappeared some conditions in the
       SSI; the bug had appeared in 0.3.50.
2006-06-30 12:19:32 +00:00
Igor Sysoev
ef809b86c3 nginx-0.3.50-RELEASE import
*) Change: the "proxy_redirect_errors" and "fastcgi_redirect_errors"
       directives was renamed to the "proxy_intercept_errors" and
       "fastcgi_intercept_errors" directives.

    *) Feature: the ngx_http_charset_module supports the recoding from the
       single byte encodings to the UTF-8 encoding and back.

    *) Feature: the "X-Accel-Charset" response header line is supported in
       proxy and FastCGI mode.

    *) Bugfix: the "\" escape symbol in the "\"" and "\'" pairs in the SSI
       command was removed only if the command also has the "$" symbol.

    *) Bugfix: the "<!--" string might be added on some conditions in the
       SSI after inclusion.

    *) Bugfix: if the "Content-Length: 0" header line was in response, then
       in nonbuffered proxying mode the client connection was not closed.
2006-06-28 16:00:26 +00:00
Igor Sysoev
afd7ec5357 nginx-0.3.48-RELEASE import
*) Change: now the ngx_http_charset_module works for subrequests, if
       the response has no "Content-Type" header line.

    *) Bugfix: if the "proxy_pass" directive has no URI part, then the
       "proxy_redirect default" directive add the unnecessary slash in
       start of the rewritten redirect.

    *) Bugfix: the internal redirect always transform client's HTTP method
       to GET, now the transformation is made for the "X-Accel-Redirect"
       redirects only and if the method is not HEAD; the bug had appeared
       in 0.3.42.

    *) Bugfix: the ngx_http_perl_module could not be built, if the perl was
       built with the threads support; the bug had appeared in 0.3.46.
2006-05-29 17:28:12 +00:00
Igor Sysoev
6f134cc275 nginx-0.3.47-RELEASE import
*) Feature: the "upstream" directive.

    *) Change: now the "\" escape symbol in the "\"" and "\'" pairs in the
       SSI command is always removed.
2006-05-23 14:54:58 +00:00
Igor Sysoev
3338cfdfbc nginx-0.3.46-RELEASE import
*) Feature: the "proxy_hide_header", "proxy_pass_header",
       "fastcgi_hide_header", and "fastcgi_pass_header" directives.

    *) Change: the "proxy_pass_x_powered_by", "fastcgi_x_powered_by", and
       "proxy_pass_server" directives were canceled.

    *) Feature: the "X-Accel-Buffering" response header line is supported
       in proxy mode.

    *) Bugfix: the reconfiguration bug and memory leaks in the
       ngx_http_perl_module.
2006-05-11 14:43:47 +00:00
Igor Sysoev
7f7846d820 nginx-0.3.42-RELEASE import
*) Feature: the "bind" option of the "listen" directive in IMAP/POP3
       proxy.

    *) Bugfix: if the same capture in the "rewrite" directive was used more
       then once.

    *) Bugfix: the $sent_http_content_type, $sent_http_content_length,
       $sent_http_last_modified, $sent_http_connection,
       $sent_http_keep_alive, and $sent_http_transfer_encoding variables
       were not written to access log.

    *) Bugfix: the $sent_http_cache_control returned value of the single
       "Cache-Control" response header line.
2006-04-26 09:52:47 +00:00
Igor Sysoev
7bdb720d6a nginx-0.3.40-RELEASE import
*) Feature: the ngx_http_dav_module supports the MKCOL method.

    *) Feature: the "create_full_put_path" directive.

    *) Feature: the "$limit_rate" variable.
2006-04-19 15:30:56 +00:00
Igor Sysoev
6d16e1e1df nginx-0.3.36-RELEASE import
*) Feature: the ngx_http_addition_filter_module.

    *) Feature: the "proxy_pass" and "fastcgi_pass" directives may be used
       inside the "if" block.

    *) Feature: the "proxy_ignore_client_abort" and
       "fastcgi_ignore_client_abort" directives.

    *) Feature: the "$request_completion" variable.

    *) Feature: the ngx_http_perl_module supports the $r->request_method
       and $r->remote_addr.

    *) Feature: the ngx_http_ssi_module supports the "elif" command.

    *) Bugfix: the "\/" string in the expression of the "if" command of the
       ngx_http_ssi_module was treated incorrectly.

    *) Bugfix: in the regular expressions in the "if" command of the
       ngx_http_ssi_module.

    *) Bugfix: if the relative path was specified in the
       "client_body_temp_path", "proxy_temp_path", "fastcgi_temp_path", and
       "perl_modules" directives, then the directory was used relatively to
       a current path but not to a server prefix.
2006-04-05 13:40:54 +00:00
Igor Sysoev
8fea885cbf nginx-0.3.33-RELEASE import
*) Feature: the "http_503" parameter of the "proxy_next_upstream" or
       "fastcgi_next_upstream" directives.

    *) Bugfix: ngx_http_perl_module did not work with inlined in the
       configuration code, if it was not started with the "sub" word.

    *) Bugfix: in the "post_action" directive.
2006-03-15 09:53:04 +00:00
Igor Sysoev
13c68741f2 nginx-0.3.31-RELEASE import
*) Change: now nginx passes the malformed proxied backend responses.

    *) Feature: the "listen" directives support the address in the "*:port"
       form.

    *) Feature: the EVFILER_TIMER support in MacOSX 10.4.

    *) Workaround: for MacOSX 64-bit kernel kqueue millisecond timeout
       bug.
       Thanks to Andrei Nigmatulin.

    *) Bugfix: if there were several "listen" directives listening one
       various addresses inside one server, then server names like
       "*.domain.tld" worked for first address only; the bug had appeared
       in 0.3.18.

    *) Bugfix: if the HTTPS protocol was used in the "proxy_pass" directive
       and the request body was in temporarily file then the request was
       not transferred.

    *) Bugfix: perl 5.8.8 compatibility.
2006-03-10 12:51:52 +00:00
Igor Sysoev
69d73da629 nginx-0.3.29-RELEASE import
*) Feature: now nginx uses less memory, if PHP in FastCGI mode sends
       many warnings before the response.

    *) Bugfix: the "Transfer-Encoding: chunked" header line was issued in
       the 204 responses for the HTTP/1.1 requests.

    *) Bugfix: nginx returned the 502 response, if the complete response
       header lines were transferred in a separate FastCGI records.

    *) Bugfix: if the proxied URI was specified in the "post_action"
       directive, then it ran only after a successful completion of a
       request.
2006-02-20 16:48:17 +00:00
Igor Sysoev
c2807ecf45 nginx-0.3.28-RELEASE import
*) Feature: the "restrict_host_names" directive was canceled.

    *) Feature: the --with-cpu-opt=ppc64 configuration parameter.

    *) Bugfix: on some condition the proxied connection with a client was
       terminated prematurely.
       Thanks to Vladimir Shutoff.

    *) Bugfix: the "X-Accel-Limit-Rate" header line was not taken into
       account if the request was redirected using the "X-Accel-Redirect"
       header line.

    *) Bugfix: the "post_action" directive ran only after a successful
       completion of a request.

    *) Bugfix: the proxied response body generated by the "post_action"
       directive was transferred to a client.
2006-02-16 15:26:46 +00:00
Igor Sysoev
ffe714403d nginx-0.3.27-RELEASE import
*) Change: the "variables_hash_max_size" and
       "variables_hash_bucket_size" directives.

    *) Feature: the $body_bytes_sent variable can be used not only in the
       "log_format" directive.

    *) Feature: the $ssl_protocol and $ssl_cipher variables.

    *) Feature: the cache line size detection for widespread CPUs at start
       time.

    *) Feature: now the "accept_mutex" directive is supported using
       fcntl(2) on platforms different from i386, amd64, sparc64, and ppc.

    *) Feature: the "lock_file" directive and the --with-lock-path=PATH
       autoconfiguration directive.

    *) Bugfix: if the HTTPS protocol was used in the "proxy_pass" directive
       then the requests with the body was not transferred.
2006-02-08 15:33:12 +00:00
Igor Sysoev
df3254aa49 nginx-0.3.20-RELEASE import
*) Bugfix: in SSI handling.

    *) Bugfix: the ngx_http_memcached_module did not support the keys in
       the "/usr?args" form.
2006-01-11 15:26:57 +00:00
Igor Sysoev
305a9d83cf nginx-0.3.18-RELEASE import
*) Feature: the "server_names" directive supports the ".domain.tld"
       names.

    *) Feature: the "server_names" directive uses the hash for the
       "*.domain.tld" names and more effective hash for usual names.

    *) Change: the "server_names_hash_max_size" and
       "server_names_hash_bucket_size" directives.

    *) Change: the "server_names_hash" and "server_names_hash_threshold"
       directives were canceled.

    *) Feature: the "valid_referers" directive uses the hash site names.

    *) Change: now the "valid_referers" directive checks the site names
       only without the URI part.

    *) Bugfix: some ".domain.tld" names incorrectly processed by the
       ngx_http_map_module.

    *) Bugfix: segmentation fault was occurred if configuration file did
       not exist; the bug had appeared in 0.3.12.

    *) Bugfix: on 64-bit platforms segmentation fault may occurred on
       start; the bug had appeared in 0.3.16.
2005-12-26 17:07:48 +00:00
Igor Sysoev
43f279dc9c nginx-0.3.17-RELEASE import
*) Change: now on Linux configure checks the presence of epoll and
       sendfile64() in kernel.

    *) Feature: the "map" directive supports domain names in the
       ".domain.tld" form.

    *) Bugfix: the timeouts were not used in SSL handshake; the bug had
       appeared in 0.2.4.

    *) Bugfix: in the HTTPS protocol in the "proxy_pass" directive.

    *) Bugfix: when the HTTPS protocol was used in the "proxy_pass"
       directive the port 80 was used by default.
2005-12-18 16:02:44 +00:00