| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
| |
Additionally, ellipsis now always added to make it clear that
the header logged is incomplete.
Reported by Daniil Bondarev.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Due to the u->headers_in.last_modified_time not being correctly initialized,
this variable was evaluated to "Thu, 01 Jan 1970 00:00:00 GMT" for responses
cached without the "Last-Modified" header which resulted in subsequent proxy
requests being sent with "If-Modified-Since: Thu, 01 Jan 1970 00:00:00 GMT"
header.
Signed-off-by: Piotr Sikora <piotr@cloudflare.com>
|
|
|
|
|
|
| |
Previously, a value of the "send" variable wasn't properly adjusted
in a rare case when syscall was interrupted by a signal. As a result,
these functions could send less data than the limit allows.
|
| |
|
|
|
|
|
|
| |
The c->sent is reset to 0 on each request by server-side http code,
so do the same on client side. This allows to count number of bytes
sent in a particular request.
|
|
|
|
| |
No functional changes.
|
|
|
|
|
|
|
| |
One intentional side effect of this change is that key is allowed only
in the first position. Previously, it was possible to specify the key
variable at any position, but that was never documented, and is contrary
with nginx configuration practice for positional parameters.
|
|
|
|
| |
No functional changes.
|
|
|
|
|
|
|
| |
One intentional side effect of this change is that key is allowed only
in the first position. Previously, it was possible to specify the key
variable at any position, but that was never documented, and is contrary
to nginx configuration practice for positional parameters.
|
|
|
|
|
| |
It's deprecated since 260d591cb6a3 (1.1.8). The "limit_conn_zone" directive
should be used instead.
|
|
|
|
|
|
| |
If a syslog daemon is restarted and the unix socket is used, further logging
might stop to work. In case of send error, socket is closed, forcing
a reconnection at the next logging attempt.
|
|
|
|
|
|
|
|
|
|
|
| |
The ngx_cycle->log is used when sending the message. This allows to log syslog
send errors in another log.
Logging to syslog after its cleanup handler has been executed was prohibited.
Previously, this was possible from ngx_destroy_pool(), which resulted in error
messages caused by attempts to write into the closed socket.
The "processing" flag is renamed to "busy" to better match its semantics.
|
| |
|
| |
|
|
|
|
| |
No functional changes.
|
|
|
|
| |
No functional changes. This follows the change from ad137a80919f.
|
|
|
|
|
| |
There's no real need in two separate implementations,
with and without kqueue support.
|
|
|
|
|
| |
It was made redundant by the previous change, since the "sent" variable
is no longer modified.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Previously, a file buffer start position was reset to the file start.
Now it's reset to the previous file buffer end. This fixes
reinitialization of requests having multiple successive parts of a
single file. Such requests are generated by fastcgi module.
|
|
|
|
|
| |
The start pointers are used in ngx_http_upstream_reinit() to
reinit FastCGI requests.
|
|
|
|
|
| |
While the module allows to use values up to 65535 bytes as a key,
that actually never worked properly.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This prevents inappropriate session reuse in unrelated server{}
blocks, while preserving ability to restore sessions on other servers
when using TLS Session Tickets.
Additionally, session context is now set even if there is no session cache
configured. This is needed as it's also used for TLS Session Tickets.
Thanks to Antoine Delignat-Lavaud and Piotr Sikora.
|
|
|
|
|
| |
It might not work if there were more than one "access_log" directives
pointed to the same file and duplicate buffer parameters.
|
|
|
|
|
|
|
| |
The new directives {proxy,fastcgi,scgi,uwsgi,memcached}_next_upstream_tries
and {proxy,fastcgi,scgi,uwsgi,memcached}_next_upstream_timeout limit
the number of upstreams tried and the maximum time spent for these tries
when searching for a valid upstream.
|
|
|
|
| |
Since peer.tries is never reset it can now be limited if required.
|
|
|
|
| |
The "single" parameter is deprecated and ignored since 5b5c07dee156 (1.3.2).
|
|
|
|
|
| |
In fastcgi, scgi and uwsgi modules there are no default cache keys, and
using a cache without a cache key set is likely meaningless.
|
| |
|
|
|
|
|
|
| |
When memory allocation failed in ngx_http_upstream_cache(), the connection
would be terminated directly in ngx_http_upstream_init_request().
Return a INTERNAL_SERVER_ERROR response instead.
|
|
|
|
|
|
|
|
| |
The ngx_init_setproctitle() function, as used on systems without
setproctitle(3), may fail due to memory allocation errors, and
therefore its return code needs to be checked.
Reported by Markus Linnala.
|
|
|
|
|
|
|
|
| |
The etag->hash must be set to 0 to avoid an empty ETag header being
returned with the 500 Internal Server Error page after the memory
allocation failure.
Reported by Markus Linnala.
|
|
|
|
|
|
|
| |
Now we actually return NGX_ERROR on errors, and provide an error
string for memory allocation errors.
Reported by Markus Linnala.
|
|
|
|
|
|
|
|
|
|
|
| |
Some of the OpenSSL forks (read: BoringSSL) started removing unused,
no longer necessary and/or not really working bug workarounds along
with the SSL options and defines for them.
Instead of fixing nginx build after each removal, be proactive
and guard use of all SSL options for bug workarounds.
Signed-off-by: Piotr Sikora <piotr@cloudflare.com>
|
|
|
|
|
|
|
| |
The messages "ngx_slab_alloc() failed: no memory in cache keys zone"
from the file cache slab allocator are suppressed since the allocation
is likely to succeed after the forced expiration of cache nodes.
The second allocation failure is reported.
|
|
|
|
|
|
|
| |
In theory, this can provide a bit better distribution of latencies.
Also it simplifies the code, since ngx_queue_t is now used instead
of custom implementation.
|
|
|
|
|
| |
It's mostly dead code. And the idea of thread support for this task has
been deprecated.
|
|
|
|
|
| |
Currently it isn't used, but it can be suitable to distinguish
objects stored in c->data.
|
|
|
|
|
| |
Made it clear when the selected balancing method does not
support certain parameters of the "server" directive.
|
|
|
|
| |
If specified, the header field is set regardless of the status code.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, a configuration like
location / {
ssi on;
ssi_types *;
set $http_foo "bar";
return 200 '<!--#echo var="http_foo" -->\n';
}
resulted in NULL pointer dereference in ngx_http_get_variable() as
the variable was explicitly added to the variables hash, but its
get_handler wasn't properly set in the hash. Fix is to make sure
that get_handler is properly set by ngx_http_variables_init_vars().
|
| |
|
|
|
|
|
|
|
| |
The SPDY module doesn't expect timers can be set on stream events for reasons
other than delaying output. But ngx_http_writer() could add timer on write
event if the delayed flag wasn't set and nginx is waiting for AIO completion.
That could cause delays in sending response over SPDY when file AIO was used.
|
|
|
|
|
| |
If a "resolver_timeout" occurs, only the first waiting request
was notified. Other requests may hang forever.
|
|
|
|
| |
The "stub_status" directive does not require an argument.
|
| |
|