<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/http, branch release-1.7.8</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>Cache: proper wakeup of subrequests.</title>
<updated>2014-12-02T02:54:56+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-12-02T02:54:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=6d52912a2a98eb3340564cf0b0627194a978d152'/>
<id>6d52912a2a98eb3340564cf0b0627194a978d152</id>
<content type='text'>
In case of a cache lock timeout and in the aio handler we now call
r-&gt;write_event_handler() instead of a connection write handler,
to make sure to run appropriate subrequest.  Previous code failed to run
inactive subrequests and hence resulted in suboptimal behaviour, see
report by Yichun Zhang:

http://mailman.nginx.org/pipermail/nginx-devel/2013-October/004435.html

(Infinite hang claimed in the report seems impossible without 3rd party
modules, as subrequests will be eventually woken up by the postpone filter.)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In case of a cache lock timeout and in the aio handler we now call
r-&gt;write_event_handler() instead of a connection write handler,
to make sure to run appropriate subrequest.  Previous code failed to run
inactive subrequests and hence resulted in suboptimal behaviour, see
report by Yichun Zhang:

http://mailman.nginx.org/pipermail/nginx-devel/2013-October/004435.html

(Infinite hang claimed in the report seems impossible without 3rd party
modules, as subrequests will be eventually woken up by the postpone filter.)
</pre>
</div>
</content>
</entry>
<entry>
<title>Upstream: improved subrequest logging.</title>
<updated>2014-12-02T02:54:54+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-12-02T02:54:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=10345663c8d7d011ae186fb22d5fdf9a1912b80d'/>
<id>10345663c8d7d011ae186fb22d5fdf9a1912b80d</id>
<content type='text'>
To ensure proper logging make sure to set current_request in all event
handlers, including resolve, ssl handshake, cache lock wait timer and
aio read handlers.  A macro ngx_http_set_log_request() introduced to
simplify this.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To ensure proper logging make sure to set current_request in all event
handlers, including resolve, ssl handshake, cache lock wait timer and
aio read handlers.  A macro ngx_http_set_log_request() introduced to
simplify this.
</pre>
</div>
</content>
</entry>
<entry>
<title>Access log: restricted "log_format" to "http" level.</title>
<updated>2014-12-01T11:51:36+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2014-12-01T11:51:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=778cc4b42ea85e19a8ebf6c1a42fc636e48ec309'/>
<id>778cc4b42ea85e19a8ebf6c1a42fc636e48ec309</id>
<content type='text'>
Specifying the "log_format" directive on levels other than "http"
is deprecated since 73d37e1ccb91 (1.1.11).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Specifying the "log_format" directive on levels other than "http"
is deprecated since 73d37e1ccb91 (1.1.11).
</pre>
</div>
</content>
</entry>
<entry>
<title>Write filter: fixed handling of sync bufs (ticket #132).</title>
<updated>2014-11-28T13:58:39+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-11-28T13:58:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=ece388033aef4325691a676b08a2e5278de39e71'/>
<id>ece388033aef4325691a676b08a2e5278de39e71</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed post_action to not trigger "header already sent" alert.</title>
<updated>2014-11-28T13:57:50+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-11-28T13:57:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=7fa89c744afd1f05f4405d9a60b8c63a65ea56cc'/>
<id>7fa89c744afd1f05f4405d9a60b8c63a65ea56cc</id>
<content type='text'>
The alert was introduced in 03ff14058272 (1.5.4), and was triggered on each
post_action invocation.

There is no real need to call header filters in case of post_action,
so return NGX_OK from ngx_http_send_header() if r-&gt;post_action is set.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The alert was introduced in 03ff14058272 (1.5.4), and was triggered on each
post_action invocation.

There is no real need to call header filters in case of post_action,
so return NGX_OK from ngx_http_send_header() if r-&gt;post_action is set.
</pre>
</div>
</content>
</entry>
<entry>
<title>SPDY: push pending data while closing a stream as with keepalive.</title>
<updated>2014-11-21T19:51:49+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2014-11-21T19:51:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=decaffa805938a76977c3290ade67968bcef558e'/>
<id>decaffa805938a76977c3290ade67968bcef558e</id>
<content type='text'>
This helps to avoid delays in sending the last chunk of data because
of bad interaction between Nagle's algorithm on nginx side and
delayed ACK on the client side.

Delays could also be caused by TCP_CORK/TCP_NOPUSH if SPDY was
working without SSL and sendfile() was used.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This helps to avoid delays in sending the last chunk of data because
of bad interaction between Nagle's algorithm on nginx side and
delayed ACK on the client side.

Delays could also be caused by TCP_CORK/TCP_NOPUSH if SPDY was
working without SSL and sendfile() was used.
</pre>
</div>
</content>
</entry>
<entry>
<title>Cache: add support for Cache-Control's s-maxage response directive.</title>
<updated>2014-11-19T01:07:14+00:00</updated>
<author>
<name>Piotr Sikora</name>
<email>piotr@cloudflare.com</email>
</author>
<published>2014-11-19T01:07:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=3ecac9eaba3b1392523ca36554b4db1405fbf914'/>
<id>3ecac9eaba3b1392523ca36554b4db1405fbf914</id>
<content type='text'>
Signed-off-by: Piotr Sikora &lt;piotr@cloudflare.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Piotr Sikora &lt;piotr@cloudflare.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Proxy: renamed and rearranged fields in proxy configuration.</title>
<updated>2014-11-19T14:33:24+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2014-11-19T14:33:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=1b79cb211d0e7004fa5f001cd035e567f56f4d91'/>
<id>1b79cb211d0e7004fa5f001cd035e567f56f4d91</id>
<content type='text'>
No functional changes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
No functional changes.
</pre>
</div>
</content>
</entry>
<entry>
<title>Upstream: different header lists for cached and uncached requests.</title>
<updated>2014-11-19T14:33:23+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2014-11-19T14:33:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=8898c97dbd493d1e8adcfaacdd6d19e8b471c2d3'/>
<id>8898c97dbd493d1e8adcfaacdd6d19e8b471c2d3</id>
<content type='text'>
The upstream modules remove and alter a number of client headers
before sending the request to upstream.  This set of headers is
smaller or even empty when cache is disabled.

It's still possible that a request in a cache-enabled location is
uncached, for example, if cache entry counter is below min_uses.
In this case it's better to alter a smaller set of headers and
pass more client headers to backend unchanged.  One of the benefits
is enabling server-side byte ranges in such requests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The upstream modules remove and alter a number of client headers
before sending the request to upstream.  This set of headers is
smaller or even empty when cache is disabled.

It's still possible that a request in a cache-enabled location is
uncached, for example, if cache entry counter is below min_uses.
In this case it's better to alter a smaller set of headers and
pass more client headers to backend unchanged.  One of the benefits
is enabling server-side byte ranges in such requests.
</pre>
</div>
</content>
</entry>
<entry>
<title>Upstream: moved header lists to separate structures.</title>
<updated>2014-11-19T14:33:22+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2014-11-19T14:33:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=bcf6b11a347303960003970614d1556c73bde4ae'/>
<id>bcf6b11a347303960003970614d1556c73bde4ae</id>
<content type='text'>
No functional changes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
No functional changes.
</pre>
</div>
</content>
</entry>
</feed>
