summaryrefslogtreecommitdiffhomepage
path: root/src/http (follow)
AgeCommit message (Collapse)AuthorFilesLines
2011-12-25SSI: added regex captures support in the expression of the "if" command.Valentin Bartenev2-29/+148
2011-12-25Fixed limit_conn_log_level/limit_req_log_level inheritance.Valentin Bartenev2-2/+2
The directives did not work if there were no limit_conn/limit_req specified on the same level.
2011-12-23Proxy: made proxy_pass with variables more consistent.Maxim Dounin1-6/+3
If proxy_pass was used with variables and there was no URI component, nginx always used unparsed URI. This isn't consistent with "no variables" case, where e.g. rewrites are applied even if there is no URI component. Fix is to use the same logic in both cases, i.e. only use unparsed URI if it's valid and request is the main one.
2011-12-19Added clearing of r->valid_unparsed_uri on internal redirects.Maxim Dounin2-2/+1
This resolves issue with try_files (see ticket #70), configuration like location / { try_files $uri /index.php; } location /index.php { proxy_pass http://backend; } caused nginx to use original request uri in a request to a backend. Historically, not clearing of the r->valid_unparsed_uri on internal redirect was a feature: it allowed to pass the same request to (another) upstream server via error_page redirection. Since then named locations appeared though, and it's time to start resetting r->valid_unparsed_uri on internal redirects. Configurations still using this feature should be converted to use named locations instead. Patch by Lanshun Zhou.
2011-12-19SSI bugfix: the "if" command did not work inside the "block" command andValentin Bartenev1-10/+10
produced parsing errors.
2011-12-19Scgi: removed error if there is no Status header.Maxim Dounin1-3/+0
The SCGI specification doesn't specify format of the response, and assuming CGI specs should be used there is no reason to complain. RFC 3875 explicitly states that "A Status header field is optional, and status 200 'OK' is assumed if it is omitted".
2011-12-19Scgi: removed duplicate function declaration.Maxim Dounin1-1/+0
2011-12-19Fixed incorrect use of r->http_version in scgi module.Maxim Dounin1-9/+3
The r->http_version is a version of client's request, and modules must not set it unless they are really willing to downgrade protocol version used for a response (i.e. to HTTP/0.9 if no response headers are available). In neither case r->http_version may be upgraded. The former code downgraded response from HTTP/1.1 to HTTP/1.0 for no reason, causing various problems (see ticket #66). It was also possible that HTTP/0.9 requests were upgraded to HTTP/1.0.
2011-12-19Version bump.Maxim Dounin1-1/+1
2011-12-12Cache: only complain on long locked entries.Maxim Dounin1-3/+3
There have been multiple reports of cases where a real locked entry was removed, resulting in a segmentation fault later in a worker which locked the entry. It looks like default inactive timeout isn't enough in real life. For now just ignore such locked entries, and move them to the top of the inactive queue to allow processing of other entries.
2011-12-12Cache: handling of cache files with long headers.Maxim Dounin1-0/+7
There are two possible situations which can lead to this: response was cached with bigger proxy_buffer_size value (and nginx was restared since then, i.e. shared memory zone content was lost), or due to the race in the cache update code (see [1]) we've end up with fcn->body_start from a different response stored in shared memory zone. [1] http://mailman.nginx.org/pipermail/nginx-devel/2011-September/001287.html
2011-12-12Cache: obsolete code removed.Maxim Dounin1-66/+0
The ngx_http_cache() and ngx_http_no_cache_set_slot() functions were replaced by ngx_http_test_predicates() and ngx_http_set_predicate_slot() in 0.8.46 and no longer used since then.
2011-12-12Renamed some constants to improve readability, no functional changes.Ruslan Ermilov1-17/+14
2011-12-12Proxy: added variables and regexp support to the first parameter ofValentin Bartenev1-99/+119
the "proxy_redirect" directive.
2011-12-09Fixed: some of $sent_http_* variables may contain header entries that actuallyValentin Bartenev1-12/+29
haven't been sent to a client. The ngx_http_variable_headers() and ngx_http_variable_unknown_header() functions did not ignore response header entries with zero "hash" field. Thanks to Yichun Zhang (agentzh).
2011-12-09Added the $https variable.Valentin Bartenev1-0/+28
2011-12-09SCGI: added "if_not_empty" flag support to the "scgi_param" directive.Valentin Bartenev1-14/+60
2011-12-09uwsgi: added "if_not_empty" flag support to the "uwsgi_param" directive.Valentin Bartenev1-7/+44
2011-12-09FastCGI: added "if_not_empty" flag support to the "fastcgi_param" directive.Valentin Bartenev1-7/+44
2011-12-09Added the ngx_http_upstream_param_set_slot().Valentin Bartenev2-0/+53
2011-12-06- Improved error message when parsing of the "buffer" parameter of theRuslan Ermilov1-1/+7
"access_log" directive fails. - Added a warning if "log_format" is used in contexts other than "http".
2011-12-06Fix for read_head with try_files and open_file_cache.Maxim Dounin1-0/+1
The of.read_ahead wasn't set in try_files code path, causing read_ahead directive to be a nop if try_files and open_file_cache were used.
2011-12-06Version bump.Maxim Dounin1-1/+1
2011-12-05Added the "so_keepalive=" parameter to the "listen" directive.Valentin Bartenev3-0/+104
The "so_keepalive" directive in mail module was deprecated. Thanks to Vsevolod Stakhov for initial work.
2011-11-29Version bump.Maxim Dounin1-1/+1
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