summaryrefslogtreecommitdiffhomepage
path: root/src/http/ngx_http_request.h (follow)
AgeCommit message (Collapse)AuthorFilesLines
2014-06-26Entity tags: explicit flag to skip not modified filter.Maxim Dounin1-0/+1
Previously, last_modified_time was tested against -1 to check if the not modified filter should be skipped. Notably, this prevented nginx from additional If-Modified-Since (et al.) checks on proxied responses. Such behaviour is suboptimal in some cases though, as checks are always skipped on responses from a cache with ETag only (without Last-Modified), resulting in If-None-Match being ignored in such cases. Additionally, it was not possible to return 412 from the If-Unmodified-Since if last modification time was not known for some reason. This change introduces explicit r->disable_not_modified flag instead, which is set by ngx_http_upstream_process_headers().
2014-05-12Added syslog support for error_log and access_log directives.Vladimir Homutov1-0/+2
2014-05-19Charset filter: fixed charset setting on encoded replies.Maxim Dounin1-1/+0
If response is gzipped we can't recode response, but in case it's not needed we still can add charset to Content-Type. The r->ignore_content_encoding is dropped accordingly, charset with gzip_static now properly works without any special flags.
2014-03-21Range filter: single_range flag in request.Maxim Dounin1-0/+1
If set, it means that response body is going to be in more than one buffer, hence only range requests with a single range should be honored. The flag is now used by mp4 and cacheable upstream responses, thus allowing range requests of mp4 files with start/end, as well as range processing on a first request to a not-yet-cached files with proxy_cache. Notably this makes it possible to play mp4 files (with proxy_cache, or with mp4 module) on iOS devices, as byte-range support is required by Apple.
2014-03-17Added server-side support for PROXY protocol v1 (ticket #355).Roman Arutyunyan1-1/+2
Client address specified in the PROXY protocol header is now saved in the $proxy_protocol_addr variable and can be used in the realip module. This is currently not implemented for mail.
2013-06-20Core: support several "error_log" directives.Vladimir Homutov1-0/+1
When several "error_log" directives are specified in the same configuration block, logs are written to all files with a matching log level. All logs are stored in the singly-linked list that is sorted by log level in the descending order. Specific debug levels (NGX_LOG_DEBUG_HTTP,EVENT, etc.) are not supported if several "error_log" directives are specified. In this case all logs will use debug level that has largest absolute value.
2013-05-11Added r->limit_rate_after.Maxim Dounin1-0/+1
As of now, it allows to better control bandwidth limiting from additional modules. It is also expected to be used to add variables support to the limit_rate_after directive.
2013-05-11Fixed build with --with-mail_ssl_module.Maxim Dounin1-1/+1
If nginx was compiled without --with-http_ssl_module, but with some other module which uses OpenSSL (e.g. --with-mail_ssl_module), insufficient preprocessor check resulted in build failure. The problem was introduced by e0a3714a36f8 (1.3.14). Reported by Roman Arutyunyan.
2013-03-20Preliminary experimental support for SPDY draft 2.Valentin Bartenev1-0/+3
2013-03-07Refactored ngx_http_init_request().Valentin Bartenev1-2/+3
Now it can be used as the request object factory with minimal impact on the connection object. Therefore it was renamed to ngx_http_create_request().
2013-03-01Allocate request object from its own pool.Valentin Bartenev1-2/+0
Previously, it was allocated from a connection pool and was selectively freed for an idle keepalive connection. The goal is to put coupled things in one chunk of memory, and to simplify handling of request objects.
2013-02-27SNI: avoid surplus lookup of virtual server if SNI was used.Valentin Bartenev1-0/+7
2013-02-27SSL: do not treat SSL handshake as request.Valentin Bartenev1-2/+2
The request object will not be created until SSL handshake is complete. This simplifies adding another connection handler that does not need request object right after handshake (e.g., SPDY). There are also a few more intentional effects: - the "client_header_buffer_size" directive will be taken from the server configuration that was negotiated by SNI; - SSL handshake errors and timeouts are not logged into access log as bad requests; - ngx_ssl_create_connection() is not called until the first byte of ClientHello message was received. This also decreases memory consumption if plain HTTP request is sent to SSL socket.
2013-02-27SNI: reuse selected configuration for all requests in a connection.Valentin Bartenev1-0/+1
Previously, only the first request in a connection was assigned the configuration selected by SNI. All subsequent requests initially used the default server's configuration, ignoring SNI, which was wrong. Now all subsequent requests in a connection will initially use the configuration selected by SNI. This is done by storing a pointer to configuration in http connection object. It points to default server's configuration initially, but changed upon receipt of SNI. (The request's configuration can be further refined when parsing the request line and Host: header.) This change was not made specific to SNI as it also allows slightly faster access to configuration without the request object.
2013-02-27Introduced the ngx_http_set_connection_log() macro.Valentin Bartenev1-0/+8
No functional changes.
2013-02-27The default server lookup is now done only once per connection.Valentin Bartenev1-13/+4
Previously, it was done for every request in a connection.
2013-02-27Correctly handle multiple X-Forwarded-For headers (ticket #106).Ruslan Ermilov1-1/+1
2013-02-18Proxy: support for connection upgrade (101 Switching Protocols).Maxim Dounin1-0/+5
This allows to proxy WebSockets by using configuration like this: location /chat/ { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } Connection upgrade is allowed as long as it was requested by a client via the Upgrade request header.
2012-11-21Request body: chunked transfer encoding support.Maxim Dounin1-1/+4
2012-07-07Entity tags: basic support in not modified filter.Maxim Dounin1-0/+2
This includes handling of ETag headers (if present in a response) with basic support for If-Match, If-None-Match conditionals in not modified filter. Note that the "r->headers_out.last_modified_time == -1" check in the not modified filter is left as is intentionally. It's to prevent handling of If-* headers in case of proxy without cache (much like currently done with If-Modified-Since).
2012-06-21Fixed compile-time conditionals used to detect if X-Forwarded-For supportRuslan Ermilov1-1/+1
is needed.
2012-02-28Raised simultaneous subrequest limit from 50 to 200.Maxim Dounin1-1/+1
It wasn't enforced for a long time, and there are reports that people use up to 100 simultaneous subrequests now. As this is a safety limit to prevent loops, it's raised accordingly.
2012-02-27Added support for the 307 Temporary Redirect.Ruslan Ermilov1-0/+1
2012-02-10Fixed module name in comment. It was forgotten in r4281.Valentin Bartenev1-1/+1
2012-01-18Copyright updated.Maxim Konovalov1-0/+1
2011-11-14Renamed ngx_http_limit_zone_module to ngx_http_limit_conn_module.Valentin Bartenev1-1/+1
2011-07-30Accept-Encoding refactoring: remove ancient MSIE 4.x test for gzipIgor Sysoev1-1/+0
2011-01-20introduce 494 code "Request Header Too Large"Igor Sysoev1-1/+3
2010-12-14rename NGX_HTTP_OWN_CODES to NGX_HTTP_NGINX_CODESIgor Sysoev1-1/+1
2010-12-06"If-Unmodified-Since" supportIgor Sysoev1-0/+1
2010-06-30remove r->zero_body unused since the previous commitIgor Sysoev1-1/+0
2010-06-18303 See OtherIgor Sysoev1-0/+1
2010-06-15allow spaces in URIIgor Sysoev1-0/+3
2010-06-10PATCH methodIgor Sysoev1-1/+2
2010-06-07202 Accepted status codeIgor Sysoev1-0/+1
2010-05-27fix a try_files/alias case when alias uses captures andIgor Sysoev1-0/+1
try_files .html "" / =404;
2010-05-24remove r->zero_in_uriIgor Sysoev1-4/+1
2010-02-01disable keepalive for Safari:Igor Sysoev1-0/+1
https://bugs.webkit.org/show_bug.cgi?id=5760
2009-11-16regex named capturesIgor Sysoev1-1/+0
2009-11-12r->chromeIgor Sysoev1-0/+1
2009-11-12refactor gzip_vary handlingIgor Sysoev1-1/+6
2009-09-25check unsafe DestinationIgor Sysoev1-0/+1
2009-09-04preload just a single byte to avoid testing file overrunIgor Sysoev1-1/+1
2009-08-30aio sendfileIgor Sysoev1-0/+3
2009-08-30*) ngx_http_ephemeralIgor Sysoev1-8/+20
*) use preallocated terminal_posted_request
2009-08-28FreeBSD and Linux AIO supportIgor Sysoev1-3/+6
2009-08-26request reference counterIgor Sysoev1-0/+1
2009-07-22geo module supports trusted proxiesIgor Sysoev1-1/+1
2009-05-25refactor ngx_http_charset_header_filter()Igor Sysoev1-1/+0
2009-05-22add charset for ngx_http_gzip_static_module responsesIgor Sysoev1-0/+1