summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2011-10-01nginx-1.0.8-RELEASErelease-1.0.8Igor Sysoev1-0/+14
2011-10-01Merging r4089 missed in r4170 merge.Igor Sysoev1-4/+4
2011-10-01Version bump.Igor Sysoev2-3/+3
2011-09-30release-1.0.7 tagIgor Sysoev1-0/+1
2011-09-30nginx-1.0.7-RELEASErelease-1.0.7Igor Sysoev1-0/+185
2011-09-30Merging r4086, r4087, r4088, r4090, r4094, r4095, r4096, r4097, r4099, r4100,Igor Sysoev5-0/+2867
r4106, r4107, r4108, r4113, r4156, r4157: *) ngx_http_mp4_module. *) "video/mp4" mime type added.
2011-09-30Merging r3986, r4006, r4007, r4073:Igor Sysoev2-2/+7
Request body related fixes: *) Always set timer in discard body handler, this fixes the cases when request for static file is redirected by error_page to an SSI page. *) Correctly set body if it's preread and there are extra data. Previously all available data was used as body, resulting in garbage after real body e.g. in case of pipelined requests. Make sure to use only as many bytes as request's Content-Length specifies. *) Fix body with request_body_in_single_buf. If there were preread data and request body was big enough first part of the request body was duplicated. See report here: http://mailman.nginx.org/pipermail/nginx/2011-July/027756.html *) Bugfix: read event was not blocked after reading body. Read event should be blocked after reading body, else undefined behaviour might occur on additional client activity. This fixes segmentation faults observed with proxy_ignore_client_abort set.
2011-09-30Merging r4011, r4012, r4136:Igor Sysoev2-6/+15
Proxy related fixes: *) Fixing cpu hog with all upstream servers marked "down". The following configuration causes nginx to hog cpu due to infinite loop in ngx_http_upstream_get_peer(): upstream backend { server 127.0.0.1:8080 down; server 127.0.0.1:8080 down; } server { ... location / { proxy_pass http://backend; } } Make sure we don't loop infinitely in ngx_http_upstream_get_peer() but stop after resetting peer weights once. Return 0 if we are stuck. This is guaranteed to work as peer 0 always exists, and eventually ngx_http_upstream_get_round_robin_peer() will do the right thing falling back to backup servers or returning NGX_BUSY. *) Upstream: properly allocate memory for tried flags. Previous allocation only took into account number of non-backup servers, and this caused memory corruption with many backup servers. See report here: http://mailman.nginx.org/pipermail/nginx/2011-May/026531.html *) Fix of cpu hog in event pipe. If client closed connection in ngx_event_pipe_write_to_downstream(), buffers in the "out" chain were lost. This caused cpu hog if all available buffers were in the "out" chain. Fix is to call ngx_chain_update_chains() before checking return code of output filter to avoid loosing buffers in the "out" chain. Note that this situation (all available buffers in the "out" chain) isn't normal, it should be prevented by busy buffers limit. Though right now it may happen with complex protocols like fastcgi. This should be addressed separately.
2011-09-30Merging r4114, r4129:Igor Sysoev1-31/+68
Buffers reuse in chunked filter. There were 2 buffers allocated on each buffer chain sent through chunked filter (one buffer for chunk size, another one for trailing CRLF, about 120 bytes in total on 32-bit platforms). This resulted in large memory consumption with long-lived requests sending many buffer chains. Usual example of problematic scenario is streaming though proxy with proxy_buffering set to off. Introduced buffers reuse reduces memory consumption in the above problematic scenario. See here for initial report: http://mailman.nginx.org/pipermail/nginx/2010-April/019814.html
2011-09-30Merging r4137:Igor Sysoev1-2/+4
Fixed loss of chain links in fastcgi module.
2011-09-30Merging r4130, r4131, r4135:Igor Sysoev2-62/+106
Linux AIO related fixes: *) Fixing Linux AIO syscalls return value handling: syscall(2) uses usual libc convention, it returns -1 on error and sets errno. Obsolete _syscall(2) returns negative value of error. *) Fixing Linux AIO initiatialization: AIO operations are disabled if kernel does not support them. Previously worker just exited. *) The "worker_aio_requests" directive. The default value is 32 AIO simultaneous requests per worker. Previously they were hardcoded to 1024, and it was too large, since Linux allocated them early on io_setup(), but not on request itself. So with default value of /proc/sys/fs/aio-max-nr equal to 65536 only 64 worker processes could be run simultaneously. 32 AIO requests are enough for modern disks even if server runs only 1 worker.
2011-09-30Merging r4098:Igor Sysoev1-0/+2
In Mac OS X Lion, Apple deprecated the use of the system OpenSSL library in favour of their CommonCrypto library. This change adds a work-around that allows nginx to still be built on Lion with OpenSSL.
2011-09-30Merging r4036, r4055, r4056, r4057, r4058, r4059, r4060, r4061, r4062, r4063,Igor Sysoev3-49/+67
r4064: Ranges related fixes: The "max_ranges" directive. "max_ranges 0" disables ranges support at all, "max_ranges 1" allows the single range, etc. By default number of ranges is unlimited, to be precise, 2^31-1. If client requests more ranges than "max_ranges" permits, nginx disables ranges and returns just the source response. If total size of all ranges is greater than source response size, then nginx disables ranges and returns just the source response. This fix should not affect well-behaving applications but will defeat DoS attempts exploiting malicious byte ranges. Now unsatisfiable ranges are processed according to RFC 2616.
2011-09-30Merging r4077, r4101, r4102:Igor Sysoev3-5/+10
open_file_cache related fixes: *) Bugfix: open_file_cache lost is_directio flag. On file retest open_file_cache lost is_directio if file wasn't changed. This caused unaligned operations under Linux to fail with EINVAL. It wasn't noticeable with AIO though, as errors wasn't properly logged. *) Bugfix: open_file_cache did not update file info on retest. If file inode was not changed, cached file information was not updated on retest. As a result stale information might be cached forever if file attributes was changed and/or file was extended.
2011-09-30Merging r4010, r4065:Igor Sysoev2-2/+6
SSL related fixes: *) Fixing proxy_set_body and proxy_pass_request_body with SSL. Flush flag wasn't set in constructed buffer and this prevented any data from being actually sent to upstream due to SSL buffering. Make sure we always set flush in the last buffer we are going to sent. See here for report: http://nginx.org/pipermail/nginx-ru/2011-June/041552.html *) Proper SSL shutdown handling. If connection has unsent alerts, SSL_shutdown() tries to send them even if SSL_set_shutdown(SSL_RECEIVED_SHUTDOWN|SSL_SENT_SHUTDOWN) was used. This can be prevented by SSL_set_quiet_shutdown(). SSL_set_shutdown() is required nevertheless to preserve session.
2011-09-30Merging r3933, r4154:Igor Sysoev5-10/+7
A new fix for the case when ssl_session_cache defined, but ssl is not enabled in any server. The previous r1033 does not help when unused zone becomes used after reconfiguration, so it is backed out. The initial thought was to make SSL modules independed from SSL implementation and to keep OpenSSL code dependance as much as in separate files.
2011-09-30Version bump.Igor Sysoev2-3/+3
2011-08-29Fix of release date.Igor Sysoev1-1/+1
2011-08-29release-1.0.6 tagIgor Sysoev1-0/+1
2011-08-29nginx-1.0.6-RELEASErelease-1.0.6Igor Sysoev1-0/+147
2011-08-29Merge of r4016:Igor Sysoev3-3/+27
Fix ignored headers handling in fastcgi/scgi/uwsgi. The bug had appeared in r3561 (fastcgi), r3638 (scgi), r3567 (uwsgi).
2011-08-29Getting rid of " <br/>" hacks.Igor Sysoev1-9/+9
2011-08-29CHANGES conversion from KOI8-R to UTF-8.Igor Sysoev4-2629/+2629
2011-08-29Merge of r3996, r3998, r4015, r4023, r4025, r4026, r4027:Igor Sysoev3-32/+67
Changes log build procedure fixes: *) using sed instead of perl *) support <br/> in the middle of input *) fixed "<br>" lookup (eliminates the need in " <br/>" hacks) *) fixed maximum length for unbreakable input *) fixed space lookup (allows a space at column 77 to break a line) *) traling spaces removal in text CHANGES files.
2011-08-29Merge of r4018:Igor Sysoev1-1/+2
Fix buffer overrun under Windows.
2011-08-29Merge of r3964, r3977, r3978:Igor Sysoev6-8/+22
Proxy related fixes: *) finalizing with rc == 0 in unbuffered proxy mode caused nginx to wait for another send_timeout before actually closing client's connection if client timed out while still talking to upstream server *) update r3945 with more descriptive error message *) test length of proxy_pass with variables; patch by Lanshun Zhou
2011-08-29Merge of r4004, r4005:Igor Sysoev2-5/+30
Solaris related fixes: *) Detect POSIX semaphores in librt on Solaris (ticket #3). Patch by Denis Ivanov. *) Lower optimization level for Sun Studio before 12.1. At least Sun Studio 12 has problems with bit-fields exposed by nginx code (caught by test suite). They seems to be fixed in Sun Studio 12.1. As a workaround use "-fast -xalias_level=any" for older versions, it resolves the problem.
2011-08-29Merge of r4003:Igor Sysoev1-1/+3
Configure: catch up with new Linux version numbering (ticket #5). Catch up with new Linux version numbering scheme as announced at [1] and suppress unrecognized versions to actually use default 0. [1] https://lkml.org/lkml/2011/5/29/204
2011-08-29Merge of r3982, r3984, r3985, r3991:Igor Sysoev3-2/+31
Lingering closing related fixes: *) lingering_close "off|on|always" *) enable lingering close for pipelined requests *) do not send RST on normal lingering close read timeout, if reset_timedout_connection is on
2011-08-29Merge of r3960, r3961, r3962, r3963, r3965:Igor Sysoev8-36/+119
SSL related fixes: *) MSIE export versions are rare now, so RSA 512 key is generated on demand and is shared among all hosts instead of pregenerating for every HTTPS host on configuraiton phase. This decreases start time for configuration with large number of HTTPS hosts. *) ECDHE support; patch by Adrian Kotelba *) fix build by gcc46 with -Wunused-value option *) fix SSL connection issues on platforms with 32-bit off_t *) do not try to reuse and save a SSL session for a peer created on the fly by ngx_http_upstream_create_round_robin_peer(), since the peer lives only during request so the saved SSL session will never be used again and just causes memory leak
2011-08-29Merge of r3979, r3980, r3981, r3983, r3987, r3994, r3995:Igor Sysoev3-16/+154
Accept-Encoding refactoring: *) "gzip; q=0" support *) and removal of ancient MSIE 4.x test for gzip
2011-08-29Merge of r3972, r3973, r3974:Igor Sysoev1-5/+7
Cache fixes: *) do not close connection if cache file is too small: replace it with valid one *) rename ngx_http_file_cache_manager_sleep() to ngx_http_file_cache_loader_sleep() and do not use it all in cache manager: this is a vestige of the times when cache manager loaded cache *) set correct configuration file values while adding path
2011-08-29Merge of r3966, r3967, r3968, r3969, r3970, r3971:Igor Sysoev5-67/+23
Cache loader improvements: The cache loader performs two tasks: inserting cache objects in inactivity list and evaluating total cache size. Reading just directory is enough for this purpose. Elimination of reading cache files saves at least one disk I/O operation per file.
2011-08-29Merge of r4035:Igor Sysoev1-0/+1
Cache size accounting fix: actual cache size on disk was less than needed by sum of sizes of files loaded by worker processes themselves while cache loader was running. The bug has been introduced in r3900.
2011-08-29Version bump.Igor Sysoev2-3/+3
2011-07-19stable-1.0 branchIgor Sysoev0-0/+0
2011-07-19release-1.0.5 tagIgor Sysoev1-0/+1
2011-07-19nginx-1.0.5-RELEASErelease-1.0.5Igor Sysoev1-1/+77
2011-07-19fix segfault if cache key is larger than upstream buffer sizeIgor Sysoev1-0/+9
patch by Lanshun Zhou
2011-07-19$uid_resetIgor Sysoev1-18/+63
2011-07-19fix r3756: release lock to allow other process to delete cache nodeIgor Sysoev1-1/+2
patch by Maxim Dounin
2011-07-18fix building by MSVCIgor Sysoev1-26/+26
2011-06-28revert r3935 and fix "stalled cache updating" alertIgor Sysoev1-16/+10
by freeing cache at upstream finalize phase patch by Maxim Dounin
2011-06-28referer_hash_max_size and referer_hash_bucket_size directivesIgor Sysoev1-2/+32
patch by Witold Filipczyk
2011-06-27use !aNULL to disable all anonymous cipher suitesIgor Sysoev3-3/+3
patch by Rob Stradling
2011-06-27bump versionIgor Sysoev2-3/+3
2011-06-01release-1.0.4 tagIgor Sysoev1-0/+1
2011-06-01nginx-1.0.4-RELEASErelease-1.0.4Igor Sysoev1-1/+48
2011-06-01fix "stalled cache updating" alert,Igor Sysoev1-0/+9
when non-cachable HEAD response did not not free an expired cache node
2011-05-31concatenate auto/os/features and auto/unixIgor Sysoev3-364/+361