Ruslan Ermilov
673941f81d
Upstream: simplified ip_hash and hash peer selection code.
...
Now that peers are stored as a list, the weighted and unweighted
cases became nearly identical.
2015-04-21 19:09:04 +03:00
Sergey Kandaurov
b6517ea696
Fixed building --with-stream when precompiled headers are used.
2015-04-20 17:36:51 +03:00
Sergey Kandaurov
1ff5515e70
Limit req: removed check for unknown limit_req_zone.
...
With 48b3d5ddfb03, it's possible to specify limit_req_zone after limit_req.
2015-04-20 16:54:41 +03:00
Sergey Kandaurov
06ff117986
Core: allow shared memory size to be declared after a reference.
...
For example, this fixes the case when "proxy_cache_path" is specified
after "proxy_cache" that references it.
2015-04-20 16:53:04 +03:00
Ruslan Ermilov
c799c82faa
Stream: port from NGINX+.
2015-04-20 13:05:11 +03:00
Ruslan Ermilov
a2dac51398
Upstream: fixed unlocked access to peer->conns.
2015-04-19 22:41:09 +03:00
Ruslan Ermilov
9b411460f9
Replaced the remaining NGX_OLD_THREADS check with NGX_WIN32.
2015-03-26 14:20:51 +03:00
Ruslan Ermilov
bfd2db83a7
Removed NGX_OLD_THREADS from select and poll modules.
...
These modules can't be compiled on win32.
2015-03-26 14:20:07 +03:00
Ruslan Ermilov
64c5df4b62
Removed "worker_threads" and "thread_stack_size" directives.
2015-03-26 14:15:17 +03:00
Ruslan Ermilov
324e389e17
Removed unused thread-local-storage code.
2015-03-26 14:15:15 +03:00
Ruslan Ermilov
2b0d2f0583
Removed ngx_threaded and related code.
2015-03-26 14:15:13 +03:00
Ruslan Ermilov
7c44e39220
Upstream: get rid of questionable micro-optimization in ip_hash.
...
If a peer was initially skipped due to max_fails, there's no reason
not to try it again if enough time has passed, and the next_upstream
logic is in action.
This also reduces diffs with NGINX Plus.
2015-04-16 20:09:11 +03:00
Sergey Kandaurov
d72fe76bb1
Core: ensure that ngx_config.h is always included first.
...
This fixes compilation of various 3rd party modules when nginx is
configured with threads.
2015-04-16 18:18:37 +03:00
Maxim Dounin
4091eb749b
Version bump.
2015-04-16 17:26:19 +03:00
Ruslan Ermilov
cf31347ee8
Upstream: the "zone" directive.
...
Upstreams with the "zone" directive are kept in shared memory,
with a consistent view of all worker processes.
2015-04-14 19:01:25 +03:00
Ruslan Ermilov
b0b7b5a356
Upstreams: locking.
2015-04-14 19:01:23 +03:00
Ruslan Ermilov
3fc23e2542
Core: read/write locks.
2015-03-21 14:05:08 +03:00
Ruslan Ermilov
4d53631022
Upstream: store peers as a linked list.
...
This is an API change.
2015-04-10 14:48:36 +03:00
Ruslan Ermilov
18fa775b10
Upstream: track the number of active connections to upstreams.
...
This also simplifies the implementation of the least_conn module.
2015-04-10 13:16:23 +03:00
Ruslan Ermilov
b25f0ddcf1
Fixed build, broken by 8b7f062a3fe6.
...
Casting a "const char *" to "char *" doesn't work on older gcc versions.
2015-04-16 15:05:40 +03:00
Vladimir Homutov
fd4da89228
Core: added OpenSSL version information to "nginx -V" output.
2015-04-16 12:17:41 +03:00
Vladimir Homutov
513f184098
Version bump.
2015-04-16 12:13:51 +03:00
Maxim Dounin
497046d4ac
release-1.7.12 tag
2015-04-07 18:35:33 +03:00
Maxim Dounin
c40f7f570c
nginx-1.7.12-RELEASE
2015-04-07 18:35:33 +03:00
Ruslan Ermilov
edb0c6ba64
Core: guard against spinlock usage without atomic ops.
...
The new thread pools code uses spinlocks.
2015-03-26 14:15:06 +03:00
Sergey Kandaurov
38a97edf3a
Core: limited levels of subdirectory hierarchy used for temp files.
...
Similar to ngx_http_file_cache_set_slot(), the last component of file->name
with a fixed length of 10 bytes, as generated in ngx_create_temp_path(), is
used as a source for the names of intermediate subdirectories with each one
taking its own part. Ensure that the sum of specified levels with slashes
fits into the length (ticket #731 ).
2015-04-07 01:32:08 +03:00
Sergey Kandaurov
256082c4f8
Core: removed excessive initialization in ngx_conf_set_path_slot().
...
Level hierarchy is pre-zeroed in ngx_pcalloc() of the surrounding ngx_path_t.
2015-04-07 01:32:07 +03:00
Sergey Kandaurov
eed7d47930
Core: fixed error handling on ngx_conf_full_name() failure.
2015-04-07 01:32:05 +03:00
Ruslan Ermilov
8c82b75127
Upstream: abbreviated SSL handshake may interact badly with Nagle.
2015-04-07 00:07:04 +03:00
Valentin Bartenev
3f72e18908
Request body: always flush buffers if request buffering is off.
...
This fixes unbuffered proxying to SSL backends, since it prevents
ngx_ssl_send_chain() from accumulation of request body in the SSL
buffer.
2015-04-06 19:20:36 +03:00
Valentin Bartenev
1329c4af80
Used the correct type for the AIO preload handler return value.
2015-04-06 11:22:24 +03:00
Maxim Dounin
76bf2f9ab5
Configure: style.
2015-04-03 18:20:57 +03:00
Filipe da Silva
95aad2235d
OCSP stapling: missing free calls.
...
Missing call to X509_STORE_CTX_free when X509_STORE_CTX_init fails.
Missing call to OCSP_CERTID_free when OCSP_request_add0_id fails.
Possible leaks in vary particular scenariis of memory shortage.
2015-04-01 15:05:08 +02:00
Valentin Bartenev
355a793b89
Cache: added support for reading of the header in thread pools.
2015-04-01 03:49:17 +03:00
Sergey Kandaurov
99bf1b56ec
Fixed invalid access to complex value defined as an empty string.
...
Found by Valgrind.
2015-03-31 17:45:50 +03:00
Valentin Bartenev
51df7912c4
Events: fixed possible crash on start or reload.
...
The main thread could wake up and start processing the notify event
before the handler was set.
2015-03-27 21:19:20 +03:00
Valentin Bartenev
3ffbf84a5e
Events: made posted events macros safe.
2015-03-27 19:57:15 +03:00
Valentin Bartenev
0e853129ac
SPDY: always push pending data.
...
This helps to avoid suboptimal behavior when a client waits for a control
frame or more data to increase window size, but the frames have been delayed
in the socket buffer.
The delays can be caused by bad interaction between Nagle's algorithm on
nginx side and delayed ACK on the client side or by TCP_CORK/TCP_NOPUSH
if SPDY was working without SSL and sendfile() was used.
The pushing code is now very similar to ngx_http_set_keepalive().
2015-03-23 21:04:13 +03:00
Valentin Bartenev
44586bf5ee
SPDY: fixed error handling in ngx_http_spdy_send_output_queue().
2015-03-23 20:47:46 +03:00
Maxim Dounin
67986d81de
Version bump.
2015-03-26 17:36:39 +03:00
Maxim Dounin
5e96e84ffb
Proxy: fixed proxy_request_buffering and chunked with preread body.
...
If any preread body bytes were sent in the first chain, chunk size was
incorrectly added before the whole chain, including header, resulting in
an invalid request sent to upstream. Fixed to properly add chunk size
after the header.
2015-03-26 02:31:30 +03:00
Maxim Dounin
4a285bbd6c
release-1.7.11 tag
2015-03-24 18:45:34 +03:00
Maxim Dounin
b04d1893a2
nginx-1.7.11-RELEASE
2015-03-24 18:45:34 +03:00
Maxim Dounin
7ec559df5d
Upstream: uwsgi_request_buffering, scgi_request_buffering.
2015-03-23 21:09:19 +03:00
Maxim Dounin
f4714d26f0
FastCGI: fastcgi_request_buffering.
2015-03-23 21:09:19 +03:00
Maxim Dounin
756997b696
Proxy: proxy_request_buffering chunked support.
2015-03-23 21:09:19 +03:00
Maxim Dounin
2743bb68ee
Request body: unbuffered reading.
...
The r->request_body_no_buffering flag was introduced. It instructs
client request body reading code to avoid reading the whole body, and
to call post_handler early instead. The caller should use the
ngx_http_read_unbuffered_request_body() function to read remaining
parts of the body.
Upstream module is now able to use this mode, if configured with
the proxy_request_buffering directive.
2015-03-23 21:09:19 +03:00
Maxim Dounin
d02d2cff9b
Request body: filters support.
2015-03-23 21:09:19 +03:00
Maxim Dounin
be99a8801e
Request body: moved request body writing to save filter.
2015-03-23 21:09:19 +03:00
Maxim Dounin
d21e644d80
Request body: free chain links in ngx_http_write_request_body().
2015-03-23 21:09:12 +03:00