summaryrefslogtreecommitdiffhomepage
path: root/src/http (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2011-11-28Allowed add_header for proxied 206 replies.Maxim Dounin1-0/+1
It was working for nginx's own 206 replies as they are seen as 200 in the headers filter module (range filter goes later in the headers filter chain), but not for proxied replies.
2011-11-28Added support for IP-literal in the Host header and request line (ticket #1).Valentin Bartenev2-26/+115
Additional parsing logic added to correctly handle RFC 3986 compliant IPv6 and IPvFuture characters enclosed in square brackets. The host validation was completely rewritten. The behavior for non IP literals was changed in a more proper and safer way: - Host part is now delimited either by the first colon or by the end of string if there's no colon. Previously the last colon was used as delimiter which allowed substitution of a port number in the $host variable. (e.g. Host: 127.0.0.1:9000:80) - Fixed stripping of the ending dot in the Host header when the host was also followed by a port number. (e.g. Host: nginx.com.:80) - Fixed upper case characters detection. Previously it was broken which led to wasting memory and CPU.
2011-11-23Fixed "rotate" to always work when combined with "resize/crop".Ruslan Ermilov1-1/+5
2011-11-23Cosmetics.Ruslan Ermilov1-3/+3
2011-11-23Fix of mp4 module seeking.Igor Sysoev1-1/+1
2011-11-22Fixed segfault on ssl servers without cert with SNI (ticket #54).Maxim Dounin1-12/+14
Non-default servers may not have ssl context created if there are no certificate defined. Make sure to check if ssl context present before using it.
2011-11-21Fixed "keepalive_disable".Ruslan Ermilov1-1/+1
Patch by Alexander Usov. The bug has been introduced in r4267.
2011-11-18Upstream: don't cache unfinished responses.Maxim Dounin1-2/+10
Check if received data length match Content-Length header (if present), don't cache response if no match found. This prevents caching of corrupted response in case of premature connection close by upstream.
2011-11-18Fixed flv header to match specification.Maxim Dounin1-1/+1
Used "\x5" in 5th byte to claim presence of both audio and video. Used previous tag size 0 in the beginning of the flv body (bytes 10 .. 13) as required by specification (see http://www.adobe.com/devnet/f4v.html). Patch by Piotr Sikora.
2011-11-16Fixed incorrect counting the length of headers in a SCGI request.Valentin Bartenev1-1/+3
2011-11-15Version bump.Maxim Dounin1-1/+1
2011-11-14Fix of "Content-Length" header of MP4 response if start argument was used.Igor Sysoev1-1/+2
Patch by Piotr Sikora.
2011-11-14Renamed ngx_http_limit_zone_module to ngx_http_limit_conn_module.Valentin Bartenev2-103/+103
2011-11-14Fixed fastcgi/scgi/uwsgi_param inheritance.Maxim Dounin3-90/+174
The following problems were fixed: 1. Directive fastcgi_cache affected headers sent to backends in unrelated servers / locations (see ticket #45). 2. If-Unmodified-Since, If-Match and If-Range headers were sent to backends if fastcgi_cache was used. 3. Cache-related headers were sent to backends if there were no fastcgi_param directives and fastcgi_cache was used at server level.
2011-11-14Separate functions to merge fastcgi/scgi/uwsgi params.Maxim Dounin3-87/+123
No functional changes.
2011-11-14Fixed Upgrade header clearing with proxy_cache.Maxim Dounin1-0/+1
This was missed in proxy HTTP/1.1 support commit (r4127).
2011-11-14Fixed proxy_set_header inheritance with proxy_set_body.Maxim Dounin1-17/+12
2011-11-14Fixed proxy_set_header inheritance with proxy_cache (ticket #45).Maxim Dounin1-9/+23
Headers cleared with cache enabled (If-Modified-Since etc.) might be cleared in unrelated servers/locations without proxy_cache enabled if proxy_cache was used in some server/location. Example config which triggered the problem: proxy_set_header X-Test "test"; server { location /1 { proxy_cache name; proxy_pass ... } } server { location /2 { proxy_pass ... } } Another one: server { proxy_cache name; location /1 { proxy_pass ... } location /2 { proxy_cache off; proxy_pass ... } } In both cases If-Modified-Since header wasn't sent to backend in location /2. Fix is to not modify conf->headers_source, but instead merge user-supplied headers from conf->headers_source and default headers (either cache or not) into separate headers_merged array.
2011-11-14Fixed NGX_CONF_TAKE1/NGX_CONF_FLAG misuse.Sergey Budnevitch3-4/+4
2011-11-10Limit zone: added the "limit_conn_zone" directive.Valentin Bartenev1-3/+132
It supersedes old "limit_zone" directive (deprecated accordingly) and uses syntax consistent with the "limit_req_zone" directive.
2011-11-10Limit zone: support for multiple "limit_conn" limits.Valentin Bartenev1-73/+117
2011-11-10Limit zone: rbtree lookup moved to a separate function.Valentin Bartenev1-51/+73
No functional changes.
2011-11-10Changed error message to be more appropriate in the imaginaryRuslan Ermilov1-1/+1
"open_file_cache max=0" case.
2011-11-08Fix of "keepalive_disable" directive.Igor Sysoev1-6/+8
2011-11-08The "image_filter_sharpen" directive.Igor Sysoev1-1/+71
2011-11-01Ancient incomplete ngx_http_status_module removal.Igor Sysoev1-309/+0
2011-11-01Version bump.Igor Sysoev1-1/+1
2011-10-31Fixed segfault on configuration testing with ssl (ticket #37).Maxim Dounin1-1/+10
The following config caused segmentation fault due to conf->file not being properly set if "ssl on" was inherited from the http level: http { ssl on; server { } }
2011-10-24Support of several servers in the "resolver" directive.Igor Sysoev1-15/+4
Patch by Kirill A. Korinskiy.
2011-10-17Fixed "expires @time" with unknown last modified time (ticket #32).Maxim Dounin1-6/+6
2011-10-17Fixed "expires @00h".Maxim Dounin1-1/+1
2011-10-17Version bump.Igor Sysoev1-1/+1
2011-10-15Added clearing of modules' contexts in ngx_http_named_location().Maxim Dounin1-0/+3
Patch by Yichun Zhang (agentzh).
2011-10-13Skipping location rewrite phase for server null location.Igor Sysoev1-0/+12
2011-10-12Better recheck of dead upstream servers.Maxim Dounin3-8/+18
Previously nginx used to mark backend again as live as soon as fail_timeout passes (10s by default) since last failure. On the other hand, detecting dead backend takes up to 60s (proxy_connect_timeout) in typical situation "backend is down and doesn't respond to any packets". This resulted in suboptimal behaviour in the above situation (up to 23% of requests were directed to dead backend with default settings). More detailed description of the problem may be found here (in Russian): http://mailman.nginx.org/pipermail/nginx-ru/2011-August/042172.html Fix is to only allow one request after fail_timeout passes, and mark backend as "live" only if this request succeeds. Note that with new code backend will not be marked "live" unless "check" request is completed, and this may take a while in some specific workloads (e.g. streaming). This is believed to be acceptable.
2011-10-12Clear old Location header (if any) while adding a new one.Maxim Dounin5-0/+17
This prevents incorrect behaviour when another redirect is issued within error_page 302 handler.
2011-10-12Wording fix, "many data" is incorrect.Maxim Dounin1-1/+1
Noted by Piotr Sikora.
2011-10-12Fixed two minor bugs in "types" parsing code.Ruslan Ermilov1-1/+10
2011-10-12Fixed grammar in a comment.Ruslan Ermilov1-1/+1
2011-10-12Replaced magic constants representing default values of some directivesRuslan Ermilov1-4/+5
with appropriate #define's.
2011-10-12Stylistic change in checking the boolean expression.Ruslan Ermilov1-1/+1
2011-10-12Preallocating exact number of default MIME types entries.Igor Sysoev1-1/+1
2011-10-12Removed old warning that suggested to use "server_name_in_redirect off"Ruslan Ermilov1-7/+0
(now the default) in place of no longer supported "server_name *".
2011-10-11Additional headers for proxy/fastcgi/uwsgi/scgi_ignore_headers.Maxim Dounin2-6/+29
Now the following headers may be ignored as well: X-Accel-Limit-Rate, X-Accel-Buffering, X-Accel-Charset.
2011-10-11Handling of Content-Encoding set from perl.Maxim Dounin1-0/+7
This fixes double gzipping in case of gzip filter being enabled while perl returns already gzipped response.
2011-10-11Fix for socket leak with "aio sendfile" and "limit_rate".Maxim Dounin2-8/+13
Second aio post happened when timer set by limit_rate expired while we have aio request in flight, resulting in "second aio post" alert and socket leak. The patch adds actual protection from aio calls with r->aio already set to aio sendfile code in ngx_http_copy_filter(). This should fix other cases as well, e.g. when sending buffered to disk upstream replies while still talking to upstream. The ngx_http_writer() is also fixed to handle the above case (though it's mostly optimization now). Reported by Oleksandr V. Typlyns'kyi.
2011-10-11Fix for connection drops with AIO.Maxim Dounin1-1/+1
Connections serving content with AIO to fast clients were dropped with "client timed out" messages after send_timeout from response start.
2011-10-11Autoindex: escape html in file names.Maxim Dounin1-12/+49
2011-10-11Autoindex: escape '?' in file names.Maxim Dounin1-11/+3
For files with '?' in their names autoindex generated links with '?' not escaped. This resulted in effectively truncated links as '?' indicates query string start. This is an updated version of the patch originally posted at [1]. It introduces generic NGX_ESCAPE_URI_COMPONENT which escapes everything but unreserved characters as per RFC 3986. This approach also renders unneeded special colon processing (as colon is percent-encoded now), it's dropped accordingly. [1] http://nginx.org/pipermail/nginx-devel/2010-February/000112.html Reported by Konstantin Leonov.
2011-10-11Improved access log escaping to better protect other software.Maxim Dounin1-5/+5
Some character sets (notably ISO-8859-1) have C1 control characters in upper half, make sure to escape them. Reported by Jesus Olmos Gonzalez.