summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2017-03-24nginx-1.11.12-RELEASErelease-1.11.12Maxim Dounin1-0/+16
2017-03-24Fixed CPU hog while freeing hc->busy after e662cbf1b932 (1.11.11).Maxim Dounin1-0/+1
Reported by Richard Stanway, http://mailman.nginx.org/pipermail/nginx/2017-March/053296.html.
2017-03-22Simplified code about duplicate root/alias directive.Ruslan Ermilov1-8/+6
2017-03-22Unified error messages about duplicate directives.Ruslan Ermilov3-3/+3
2017-03-22Version bump.Ruslan Ermilov1-2/+2
2017-03-21release-1.11.11 tagMaxim Dounin1-0/+1
2017-03-21nginx-1.11.11-RELEASErelease-1.11.11Maxim Dounin1-0/+71
2017-03-21Added HTTP/2 to win32 builds.Maxim Dounin1-0/+1
2017-03-17Fixed a comment.Ruslan Ermilov1-1/+1
2017-03-16Configure: fixed --without_http.Ruslan Ermilov2-691/+675
Instead of turning off some randomly selected http modules when --without-http is specified, just don't process the whole http modules section.
2017-03-16Configure: fixed build with --with-stream.Ruslan Ermilov1-0/+2
Some combinations of options might cause the builds with the --with-stream option to break due to invalid value of the STREAM_INCS make variable, e.g. auto/configure \ --with-stream \ --with-http_perl_module=dynamic \ --without-http_memcached_module \ --without-http_empty_gif_module \ --without-http_browser_module \ --without-http_upstream_hash_module \ --without-http_upstream_ip_hash_module \ --without-http_upstream_least_conn_module \ --without-http_upstream_keepalive_module \ --without-http_upstream_zone_module \ Explicit initialization of ngx_module_libs and ngx_module_link matches what we already do when processing mail modules, and is also required after the next change.
2017-03-16Added missing "static" specifier found by gcc -Wtraditional.Ruslan Ermilov1-1/+1
This has somehow escaped from fbdaad9b0e7b.
2017-03-07Style.Maxim Dounin1-2/+0
2017-03-07Introduced worker_shutdown_timeout.Maxim Dounin5-0/+66
The directive configures a timeout to be used when gracefully shutting down worker processes. When the timer expires, nginx will try to close all the connections currently open to facilitate shutdown.
2017-03-07Cancelable timers are now preserved if there are other timers.Maxim Dounin4-36/+17
There is no need to cancel timers early if there are other timers blocking shutdown anyway. Preserving such timers allows nginx to continue some periodic work till the shutdown is actually possible. With the new approach, timers with ev->cancelable are simply ignored when checking if there are any timers left during shutdown.
2017-03-07Core: introduced ngx_rbtree_next().Maxim Dounin2-0/+31
2017-03-07Access log: removed dead ev->timedout check in flush timer handler.Maxim Dounin2-28/+2
The ev->timedout flag is set on first timer expiration, and never reset after it. Due to this the code to stop the timer when the timer was canceled never worked (except in a very specific time frame immediately after start), and the timer was always armed again. This essentially resulted in a buffer flush at the end of an event loop iteration. This behaviour actually seems to be better than just stopping the flush timer for the whole shutdown, so it is preserved as is instead of fixing the code to actually remove the timer. It will be further improved by upcoming changes to preserve cancelable timers if there are other timers blocking shutdown.
2017-03-07Converted hc->busy/hc->free to use chain links.Maxim Dounin2-39/+53
Most notably, this fixes possible buffer overflows if number of large client header buffers in a virtual server is different from the one in the default server. Reported by Daniil Bondarev.
2017-03-07Removed casts not needed after 1f513d7f1b45.Ruslan Ermilov1-2/+2
2017-03-06Mail: don't emit separator in capability lists for APOP.Sergey Kandaurov1-0/+16
Notably, this fixes CAPA and AUTH output. The bug had appeared in nginx 1.11.6 (73b451d304c0).
2017-03-06Added missing "static" specifiers found by gcc -Wtraditional.Ruslan Ermilov3-3/+3
2017-03-02Added missing static specifiers.Eran Kornblau15-35/+35
2017-03-01Contrib: vim syntax, update 3rd party module directives.othree1-137/+1330
2017-02-27Fixed background update with "if".Maxim Dounin1-0/+1
Cloned subrequests should inherit r->content_handler. This way they will be able to use the same location configuration as the original request if there are "if" directives in the configuration. Without r->content_handler inherited, the following configuration tries to access a static file in the update request: location / { set $true 1; if ($true) { # nothing } proxy_pass http://backend; proxy_cache one; proxy_cache_use_stale updating; proxy_cache_background_update on; } See http://mailman.nginx.org/pipermail/nginx/2017-February/053019.html for initial report.
2017-02-24Contrib: vim syntax, update core module directives.othree1-0/+90
2017-02-22Contrib: vim syntax, listen option and SSL/Mail protocol keywords.othree1-6/+31
2017-02-17Fixed ngx_parse_size() / ngx_parse_offset() with 0-length strings.Maxim Dounin1-0/+10
2017-02-16Trailing space removed.Maxim Dounin1-1/+1
2017-02-16Docs: changes.xslt regenerated.Maxim Dounin1-4/+10
2017-02-16Docs: changes.xml dates converted to ISO 8601 format.Maxim Dounin2-413/+419
Dates in ISO 8601 format are in line with what is used in nginx.org news, and are generally less ambiguous and easier to work with. The changes.xml was converted using sed: $ sed 's/date="\(..\)\.\(..\)\.\(....\)"/date="\3-\2-\1"/g' changes.xml Appropriate changes to changes.xsls were introduced.
2017-02-16Version bump.Maxim Dounin1-2/+2
2017-02-14release-1.11.10 tagMaxim Dounin1-0/+1
2017-02-14nginx-1.11.10-RELEASErelease-1.11.10Maxim Dounin1-0/+102
2017-02-13Gzip: free chain links on the hot path (ticket #1046).Maxim Dounin1-6/+16
2017-02-10Upstream: read handler cleared on upstream finalization.Maxim Dounin1-0/+2
With "proxy_ignore_client_abort off" (the default), upstream module changes r->read_event_handler to ngx_http_upstream_rd_check_broken_connection(). If the handler is not cleared during upstream finalization, it can be triggered later, causing unexpected effects, if, for example, a request was redirected to a different location using error_page or X-Accel-Redirect. In particular, it makes "proxy_ignore_client_abort on" non-working after a redirection in a configuration like this: location = / { error_page 502 = /error; proxy_pass http://127.0.0.1:8082; } location /error { proxy_pass http://127.0.0.1:8083; proxy_ignore_client_abort on; } It is also known to cause segmentation faults with aio used, see http://mailman.nginx.org/pipermail/nginx-ru/2015-August/056570.html. Fix is to explicitly set r->read_event_handler to ngx_http_block_reading() during upstream finalization, similar to how it is done in the request body reading code and in the limit_req module.
2017-02-10Cache: increased cache header Vary and ETag lengths to 128.Maxim Dounin1-3/+3
This allows to store larger ETag values for proxy_cache_revalidate, including ones generated as SHA256, and cache responses with longer Vary (ticket #826). In particular, this fixes caching of Amazon S3 responses with CORS enabled, which now use "Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method". Cache version bumped accordingly.
2017-02-10Slice filter: fetch slices in cloned subrequests.Roman Arutyunyan1-1/+4
Previously, slice subrequest location was selected based on request URI. If request is then redirected to a new location, its context array is cleared, making the slice module loose current slice range information. This lead to broken output. Now subrequests with the NGX_HTTP_SUBREQUEST_CLONE flag are created for slices. Such subrequests stay in the same location as the parent request and keep the right slice context.
2017-02-10Upstream: proxy_cache_background_update and friends.Roman Arutyunyan10-4/+107
The directives enable cache updates in subrequests.
2016-12-22Cache: support for stale-while-revalidate and stale-if-error.Roman Arutyunyan3-21/+93
Previously, there was no way to enable the proxy_cache_use_stale behavior by reading the backend response. Now, stale-while-revalidate and stale-if-error Cache-Control extensions (RFC 5861) are supported. They specify, how long a stale response can be used when a cache entry is being updated, or in case of an error.
2017-02-08Request body: commented out debug printing of old buffers.Maxim Dounin1-0/+2
This is not really needed in practice, and causes excessive debug output in some of our tests.
2017-02-08Request body: c->error on "100 Continue" errors (ticket #1194).Maxim Dounin1-0/+2
2017-02-06SSL: clear error queue after OPENSSL_init_ssl().Sergey Kandaurov1-1/+11
The function may leave error in the error queue while returning success, e.g., when taking a DSO reference to itself as of OpenSSL 1.1.0d: https://git.openssl.org/?p=openssl.git;a=commit;h=4af9f7f Notably, this fixes alert seen with statically linked OpenSSL on some platforms. While here, check OPENSSL_init_ssl() return value.
2017-02-02SSL: fixed ssl_buffer_size on SNI virtual hosts (ticket #1192).Maxim Dounin1-0/+2
Previously, buffer size was not changed from the one saved during initial ngx_ssl_create_connection(), even if the buffer itself was not yet created. Fix is to change c->ssl->buffer_size in the SNI callback. Note that it should be also possible to update buffer size even in non-SNI virtual hosts as long as the buffer is not yet allocated. This looks like an overcomplication though.
2017-02-01Configure: removed execute bit from auto/unix.Sergey Kandaurov1-0/+0
2017-01-31Variables: generic prefix variables.Dmitry Volyntsev9-162/+266
2017-01-31Implemented the "server_tokens build" option.Ruslan Ermilov5-19/+92
Based on a patch by Tom Thorogood.
2017-01-27Updated OpenSSL used for win32 builds.Maxim Dounin1-1/+1
2017-01-26Upstream: removed unused bl_time and bl_state fields.Maxim Dounin1-3/+0
2017-01-24Upstream: removed unused ngx_http_upstream_conf_t.timeout field.Thibault Charbonnier1-1/+0
2017-01-25Upstream: removed compatibility shims from ngx_http_upstream_t.Vladimir Homutov1-3/+0
The type is no longer modified in NGINX Plus.