Maxim Dounin
aa12f3c7f3
Proxy: whitespaces after chunk size allowed.
...
Whitespaces after chunk size seems to be be allowed by the "implied *LWS" rule
and emitted by some servers.
2011-09-25 20:03:27 +00:00
Maxim Dounin
28b001f897
Upstream: clearing of u->peer.connection on close.
...
This fixes crashes observed with some 3rd party balancer modules. Standard
balancer modules (round-robin and ip hash) explicitly set pc->connection
(aka u->peer.connection) to NULL and aren't affected.
2011-09-25 20:00:36 +00:00
Ruslan Ermilov
b1565cf96b
Fixed error message.
2011-09-23 20:15:27 +00:00
Maxim Dounin
afe2e3d082
Fix of separate pool for upstream connections (r4117).
...
Pool may not be created if connection was created but rejected in connect()
call. Make sure to check if it is here before trying to destroy it.
2011-09-20 10:00:46 +00:00
Maxim Dounin
d1b9a0388d
Fixed loss of chain links in fastcgi module.
2011-09-20 09:56:05 +00:00
Ruslan Ermilov
a823c550e4
Replaced "can not" with "cannot" and "could not" in a bunch of places.
...
Fixed nearby grammar errors.
2011-09-19 14:48:29 +00:00
Ruslan Ermilov
3b7ed02583
Cosmetics: replaced NGX_CONF_TAKE1 to NGX_CONF_FLAG for "sendfile"
...
and "chunked_transfer_encoding" directives, to be in line with all
directives taking a boolean argument. Both flags will ensure that
a directive takes one argument.
2011-09-19 12:41:13 +00:00
Ruslan Ermilov
5d4aed0175
Overhauled diagnostic messages.
2011-09-19 12:37:22 +00:00
Maxim Dounin
c6353a5654
Trailing space fix.
2011-09-16 12:08:52 +00:00
Maxim Dounin
44002e541f
Upstream keepalive module.
2011-09-15 19:28:18 +00:00
Maxim Dounin
2fe0a7a0f6
Proxy: basic HTTP/1.1 support (including keepalive).
...
By default we still send requests using HTTP/1.0. This may be changed with
new proxy_http_version directive.
2011-09-15 19:23:20 +00:00
Maxim Dounin
f2fcf11b25
Protocol version parsing in ngx_http_parse_status_line().
...
Once we know protocol version, set u->headers_in.connection_close to indicate
implicitly assumed connection close with HTTP before 1.1.
2011-09-15 19:22:35 +00:00
Maxim Dounin
f84c69a301
Upstream: Connection header processing.
2011-09-15 19:21:19 +00:00
Maxim Dounin
4686f30a0c
Upstream: Transfer-Encoding header processing.
2011-09-15 19:20:08 +00:00
Maxim Dounin
2da36b30c3
Keepalive support in fastcgi.
...
By default follow the old behaviour, i.e. FASTCGI_KEEP_CONN flag isn't set
in request and application is responsible for closing connection once request
is done. To keep connections alive fastcgi_keep_conn must be activated.
2011-09-15 19:05:23 +00:00
Maxim Dounin
05552a23a2
Keepalive support in memcached.
2011-09-15 19:04:25 +00:00
Maxim Dounin
2d6be3fe93
Upstream: keepalive flag.
...
This patch introduces r->upstream->keepalive flag, which is set by protocol
handlers if connection to upstream is in good state and can be kept alive.
2011-09-15 19:03:15 +00:00
Maxim Dounin
a746bab7c1
Upstream: pipe length and input_filter_init in buffered mode.
...
As long as ngx_event_pipe() has more data read from upstream than specified
in p->length it's passed to input filter even if buffer isn't yet full. This
allows to process data with known length without relying on connection close
to signal data end.
By default p->length is set to -1 in upstream module, i.e. end of data is
indicated by connection close. To set it from per-protocol handlers upstream
input_filter_init() now called in buffered mode (as well as in
unbuffered mode).
2011-09-15 19:00:47 +00:00
Maxim Dounin
ffe4f11417
Upstream: r->upstream->length type change to off_t.
...
Previous use of size_t may cause wierd effects on 32bit platforms with certain
big responses transferred in unbuffered mode.
Nuke "if (size > u->length)" check as it's not usefull anyway (preread
body data isn't subject to this check) and now requires additional check
for u->length being positive.
2011-09-15 18:43:19 +00:00
Maxim Dounin
e19f005daf
Upstream: content_length_n API change.
...
We no longer use r->headers_out.content_length_n as a primary source of
backend's response length. Instead we parse response length to
u->headers_in.content_length_n and copy to r->headers_out.content_length_n
when needed.
2011-09-15 18:33:43 +00:00
Maxim Dounin
360ed25d65
Upstream: separate pool for peer connections.
...
This is required to support persistent https connections as various ssl
structures are allocated from connection's pool.
2011-09-15 18:21:24 +00:00
Maxim Dounin
c42c70f478
Workaround for cpu hog on errors with cached connections.
...
Just doing another connect isn't safe as peer.get() may expect peer.tries
to be strictly positive (this is the case e.g. with round robin with multiple
upstream servers). Increment peer.tries to at least avoid cpu hog in
round robin balancer (with the patch alert will be seen instead).
This is not enough to fully address the problem though, hence TODO. We
should be able to inform balancer that the error wasn't considered fatal
and it may make sense to retry the same peer.
2011-09-15 18:12:58 +00:00
Maxim Dounin
d7c2673d3f
API change: ngx_chain_update_chains() now requires pool.
...
The ngx_chain_update_chains() needs pool to free chain links used for buffers
with non-matching tags. Providing one helps to reduce memory consumption
for long-lived requests.
2011-09-15 16:03:17 +00:00
Maxim Dounin
a890b313f3
Buffers reuse in chunked filter.
...
There were 2 buffers allocated on each buffer chain sent through chunked
filter (one buffer for chunk size, another one for trailing CRLF, about
120 bytes in total on 32-bit platforms). This resulted in large memory
consumption with long-lived requests sending many buffer chains. Usual
example of problematic scenario is streaming though proxy with
proxy_buffering set to off.
Introduced buffers reuse reduces memory consumption in the above problematic
scenario.
See here for initial report:
http://mailman.nginx.org/pipermail/nginx/2010-April/019814.html
2011-09-15 15:25:42 +00:00
Igor Sysoev
57b4fdb6c8
MP4 co64 atom support added.
2011-09-15 13:23:03 +00:00
Igor Sysoev
c940f5fc99
Fix of struct field name.
2011-09-15 05:15:16 +00:00
Igor Sysoev
1fc9a8dec6
Style fix.
2011-09-14 15:26:11 +00:00
Igor Sysoev
acdac73688
Fixing building by gcc-4.7.
2011-09-14 15:25:46 +00:00
Igor Sysoev
4a383594fb
Version bump.
2011-09-14 15:20:01 +00:00
Igor Sysoev
2cc42b74c7
Skipping traks with unsupported media formats.
2011-09-14 14:04:41 +00:00
Igor Sysoev
dcea2ce7d1
Fix of case when start sample does not reside on chunk boundary.
2011-09-14 05:16:20 +00:00
Igor Sysoev
f824fb47fe
Fix of debug message format.
2011-09-12 15:15:00 +00:00
Igor Sysoev
d44855067d
Fix of codec debug message.
2011-09-12 14:54:28 +00:00
Igor Sysoev
3d9ae84bf9
Fix of error message.
2011-09-12 14:46:06 +00:00
Igor Sysoev
7e8ee656a8
Fix of error message.
2011-09-12 13:06:22 +00:00
Igor Sysoev
e07a3577a9
mp4_max_moov_size directive has been renamed to mp4_max_buffer_size.
2011-09-12 09:38:04 +00:00
Igor Sysoev
b1c79a449e
bugfix of r4086: nginx could not be built without debug log.
2011-09-09 11:56:49 +00:00
Igor Sysoev
5d01ac5af3
Bugfix of r4086: directio was always enabled if mp4 file was sent as is.
2011-09-09 11:13:55 +00:00
Igor Sysoev
dde4d7e300
ngx_http_mp4_module
2011-09-09 10:22:34 +00:00
Igor Sysoev
3a73e50498
Version bump.
2011-09-05 16:26:51 +00:00
Maxim Dounin
bfbbfc85df
Bugfix: read event was not blocked after reading body.
...
Read event should be blocked after reading body, else undefined behaviour
might occur on additional client activity. This fixes segmentation faults
observed with proxy_ignore_client_abort set.
2011-09-05 12:43:31 +00:00
Igor Sysoev
09be2f18c5
Now if client requests more ranges than "max_ranges" permits,
...
nginx disables ranges and returns just the source response.
2011-09-01 13:03:55 +00:00
Igor Sysoev
f560419c54
The "max_ranges" directive.
...
"max_ranges 0" disables ranges support at all,
"max_ranges 1" allows the single range, etc.
By default number of ranges is unlimited, to be precise, 2^31-1.
2011-08-31 09:40:55 +00:00
Igor Sysoev
e81c293289
Style fix: removal of tabs introduced in the previous commit.
2011-08-31 09:26:07 +00:00
Igor Sysoev
65b1592d02
*) fix of r4060: start value should be tested after the "found" label;
...
*) optimization: start value may be tested against end value only,
since end value here may not be greater than content_length.
2011-08-30 20:34:58 +00:00
Igor Sysoev
1f3280bae2
Unsatisfiable range with start value greater than content length
...
was not properly skipped. The bug has been introduced in r4057.
2011-08-30 14:25:35 +00:00
Igor Sysoev
e766153451
ngx_http_range_parse() should be static.
2011-08-30 13:07:33 +00:00
Igor Sysoev
9162057731
Ranges processing small optimization.
2011-08-30 13:06:12 +00:00
Igor Sysoev
451df22b3f
Now unsatisfiable ranges are processed according to RFC 2616.
2011-08-30 13:01:55 +00:00
Igor Sysoev
584703b84a
Ranges processing small optimization.
2011-08-30 12:45:24 +00:00
Igor Sysoev
f2575bd878
Style fix.
2011-08-30 12:28:01 +00:00
Igor Sysoev
c2c3e3105f
Now if total size of all ranges is greater than source response size,
...
then nginx disables ranges and returns just the source response.
This fix should not affect well-behaving applications but will defeat
DoS attempts exploiting malicious byte ranges.
2011-08-26 09:42:50 +00:00
Igor Sysoev
8b2bf08165
Cache size accounting fix: actual cache size on disk was less than
...
needed by sum of sizes of files loaded by worker processes themselves
while cache loader was running.
The bug has been introduced in r3900.
2011-08-25 17:29:34 +00:00
Maxim Dounin
fbc51e4c44
Better handling of various per-server ssl options with SNI.
...
SSL_set_SSL_CTX() doesn't touch values cached within ssl connection
structure, it only changes certificates (at least as of now, OpenSSL
1.0.0d and earlier).
As a result settings like ssl_verify_client, ssl_verify_depth,
ssl_prefer_server_ciphers are only configurable on per-socket basis while
with SNI it should be possible to specify them different for two servers
listening on the same socket.
Workaround is to explicitly re-apply settings we care about from context
to ssl connection in servername callback.
Note that SSL_clear_options() is only available in OpenSSL 0.9.8m+. I.e.
with older versions it is not possible to clear ssl_prefer_server_ciphers
option if it's set in default server for a socket.
2011-08-23 14:36:31 +00:00
Igor Sysoev
631fa929d3
Version bump.
2011-08-23 14:22:34 +00:00
Igor Sysoev
0d18687b03
The change in adaptive loader behaviour introduced in r3975:
...
now cache loader processes either as many files as specified by loader_files
or works no more than time specified by loader_threshold during each iteration.
loader_threshold was previously used to decrease loader_files or
to increase loader_timeout and this might eventually result in
downgrading loader_files to 1 and increasing loader_timeout to large values
causing loading cache for forever.
2011-08-22 10:16:49 +00:00
Maxim Dounin
5a52d67a08
Fix ignored headers handling in fastcgi/scgi/uwsgi.
...
The bug had appeared in r3561 (fastcgi), r3638 (scgi), r3567 (uwsgi).
2011-08-19 20:11:39 +00:00
Maxim Dounin
b7fcb430c1
Upstream: properly allocate memory for tried flags.
...
Previous allocation only took into account number of non-backup servers, and
this caused memory corruption with many backup servers.
See report here:
http://mailman.nginx.org/pipermail/nginx/2011-May/026531.html
2011-08-18 17:04:52 +00:00
Maxim Dounin
624fbe94a2
Fixing cpu hog with all upstream servers marked "down".
...
The following configuration causes nginx to hog cpu due to infinite loop
in ngx_http_upstream_get_peer():
upstream backend {
server 127.0.0.1:8080 down;
server 127.0.0.1:8080 down;
}
server {
...
location / {
proxy_pass http://backend ;
}
}
Make sure we don't loop infinitely in ngx_http_upstream_get_peer() but stop
after resetting peer weights once.
Return 0 if we are stuck. This is guaranteed to work as peer 0 always exists,
and eventually ngx_http_upstream_get_round_robin_peer() will do the right
thing falling back to backup servers or returning NGX_BUSY.
2011-08-18 16:52:38 +00:00
Maxim Dounin
9bc8fc4602
Fixing proxy_set_body and proxy_pass_request_body with SSL.
...
Flush flag wasn't set in constructed buffer and this prevented any data
from being actually sent to upstream due to SSL buffering. Make sure
we always set flush in the last buffer we are going to sent.
See here for report:
http://nginx.org/pipermail/nginx-ru/2011-June/041552.html
2011-08-18 16:34:24 +00:00
Igor Sysoev
c4ff39ae2b
Fix names of the referer hash size directives introduced in r3940.
2011-08-18 16:27:30 +00:00
Maxim Dounin
b09ceca261
Fix body with request_body_in_single_buf.
...
If there were preread data and request body was big enough first part
of the request body was duplicated.
See report here:
http://mailman.nginx.org/pipermail/nginx/2011-July/027756.html
2011-08-18 15:52:00 +00:00
Maxim Dounin
f48b451195
Correctly set body if it's preread and there are extra data.
...
Previously all available data was used as body, resulting in garbage after
real body e.g. in case of pipelined requests. Make sure to use only as many
bytes as request's Content-Length specifies.
2011-08-18 15:27:57 +00:00
Igor Sysoev
de236d3a2c
fix gzip quantity: "q=0." and "q=1." are valid values according to RFC
2011-08-05 08:51:29 +00:00
Igor Sysoev
48d17bca94
refactor gzip quantity introduced in r3981: it ignored "q=1.000"
2011-08-04 14:50:59 +00:00
Igor Sysoev
dfd81a23b2
A new fix for the case when ssl_session_cache defined, but ssl is not
...
enabled in any server. The previous r1033 does not help when unused zone
becomes used after reconfiguration, so it is backed out.
The initial thought was to make SSL modules independed from SSL implementation
and to keep OpenSSL code dependance as much as in separate files.
2011-08-04 11:12:30 +00:00
Igor Sysoev
c42be75569
removal of error message about %name log_format parameters,
...
they have been deleted long ago in 0.5.0-RELEASE
2011-08-03 16:01:36 +00:00
Igor Sysoev
7cce1cacaa
fix typo introduced in r3985
2011-08-02 12:43:01 +00:00
Igor Sysoev
475a5dfcf1
bump version
2011-08-02 12:39:38 +00:00
Igor Sysoev
72a96bfdcb
fix r3981 again for case "Accept-Encoding: gzip"
2011-08-01 14:38:09 +00:00
Igor Sysoev
21fd22d089
always set timer in discard body handler, this fixes the cases
...
when request for static file is redirected by error_page to an SSI page
patch by Maxim Dounin
2011-08-01 13:52:54 +00:00
Igor Sysoev
2505587b4d
lingering_close "off|on|always"
...
patch by Maxim Dounin
2011-08-01 13:26:55 +00:00
Igor Sysoev
41c8a1d27f
do not send RST on normal lingering close read timeout,
...
if reset_timedout_connection is on
patch by Maxim Dounin
2011-08-01 13:08:03 +00:00
Igor Sysoev
bd7dfe44c5
fix r3981 for case "Accept-Encoding: gzip"
2011-08-01 11:21:46 +00:00
Igor Sysoev
2f3668b59b
enable lingering close for pipelined requests
...
patch by Maxim Dounin
2011-08-01 11:08:57 +00:00
Igor Sysoev
721f47ed3c
Accept-Encoding refactoring: "gzip; q=0" support
2011-08-01 11:02:12 +00:00
Igor Sysoev
d743a2339e
Accept-Encoding refactoring: test first the most common case "gzip,"
2011-07-30 07:34:12 +00:00
Igor Sysoev
6652cc5962
Accept-Encoding refactoring: remove ancient MSIE 4.x test for gzip
2011-07-30 06:20:06 +00:00
Igor Sysoev
c9468026e7
test length of proxy_pass with variables
...
patch by Lanshun Zhou
2011-07-30 06:11:46 +00:00
Igor Sysoev
c2f852c260
update r3945 with more descriptive error message
2011-07-29 15:33:03 +00:00
Igor Sysoev
922f106582
loader_files, loader_sleep, and loader_threshold
2011-07-29 15:09:02 +00:00
Igor Sysoev
d5a25a4b97
set correct configuration file values while adding path
...
patch by Maxim Dounin
2011-07-25 10:22:38 +00:00
Igor Sysoev
1850ce09a1
rename ngx_http_file_cache_manager_sleep() to ngx_http_file_cache_loader_sleep()
...
and do not use it all in cache manager: this is a vestige of the times when
cache manager loaded cache
2011-07-25 09:45:00 +00:00
Igor Sysoev
d8ce166e2e
do not close connection if cache file is too small: replace it with valid one
2011-07-24 20:04:47 +00:00
Igor Sysoev
c2cafadfa5
elimination of reading cache files by cache loader
2011-07-24 19:46:53 +00:00
Igor Sysoev
92161bac79
fix r3968
2011-07-24 19:43:52 +00:00
Igor Sysoev
6cb6fc4a09
update the previous commit:
...
removing dependencies on file uniq since WIN32_FIND_DATA has no such field
2011-07-24 17:36:26 +00:00
Igor Sysoev
c1250b6a49
The cache loader performs two tasks: inserting cache objects in inactivity
...
list and evaluating total cache size. Reading just directory is enough for
this purpose. Elimination of reading cache files saves at least one disk I/O
operation per file.
Preparation for elimination of reading cache files by cache loader:
removing dependencies on the reading:
*) cache node valid_sec and valid_msec are used only for caching errors;
*) upstream buffer size can be used instead of cache node body_start.
2011-07-24 16:47:31 +00:00
Igor Sysoev
bb389f6111
fuse two if's in one condition
2011-07-24 16:10:06 +00:00
Igor Sysoev
64d024605a
style fix
2011-07-24 16:06:24 +00:00
Igor Sysoev
08b597592f
do not try to reuse and save a SSL session for a peer created on the fly
...
by ngx_http_upstream_create_round_robin_peer(), since the peer lives
only during request so the saved SSL session will never be used again
and just causes memory leak
patch by Maxim Dounin
2011-07-22 16:30:17 +00:00
Igor Sysoev
a3741fb24d
finalizing with rc == 0 in unbuffered proxy mode caused nginx to wait
...
for another send_timeout before actually closing client's connection
if client timed out while still talking to upstream server
patch by Maxim Dounin
2011-07-22 13:30:16 +00:00
Igor Sysoev
f39642a907
ECDHE support
...
patch by Adrian Kotelba
2011-07-20 15:42:40 +00:00
Igor Sysoev
e61ba26744
MSIE export versions are rare now, so RSA 512 key is generated on demand
...
and is shared among all hosts instead of pregenerating for every HTTPS host
on configuraiton phase. This decreases start time for configuration with
large number of HTTPS hosts.
2011-07-20 12:59:24 +00:00
Igor Sysoev
2551f4a55d
bump version: 1.1.0 development version
2011-07-20 09:29:25 +00:00
Igor Sysoev
6c3c3bbe42
fix segfault if cache key is larger than upstream buffer size
...
patch by Lanshun Zhou
2011-07-19 11:24:16 +00:00
Igor Sysoev
82afb9cc86
$uid_reset
2011-07-19 11:21:50 +00:00
Igor Sysoev
a0202f26c6
fix r3756: release lock to allow other process to delete cache node
...
patch by Maxim Dounin
2011-07-19 10:35:02 +00:00
Igor Sysoev
87ee007022
revert r3935 and fix "stalled cache updating" alert
...
by freeing cache at upstream finalize phase
patch by Maxim Dounin
2011-06-28 13:26:08 +00:00
Igor Sysoev
f58154db2f
referer_hash_max_size and referer_hash_bucket_size directives
...
patch by Witold Filipczyk
2011-06-28 10:40:44 +00:00
Igor Sysoev
8d7b1d222e
use !aNULL to disable all anonymous cipher suites
...
patch by Rob Stradling
2011-06-27 15:47:51 +00:00
Igor Sysoev
0a860a1c1d
bump version
2011-06-27 15:34:44 +00:00
Igor Sysoev
1788ec0c48
fix "stalled cache updating" alert,
...
when non-cachable HEAD response did not not free an expired cache node
2011-06-01 08:02:34 +00:00
Igor Sysoev
5343bf3221
revert r3875 since now map uses case sensetive regexes by default
2011-05-30 14:24:17 +00:00
Igor Sysoev
53d05b969b
change ngx_http_map_find(): use case sensitive regexes
2011-05-30 12:36:17 +00:00
Igor Sysoev
ce2229e2f7
bump version
2011-05-26 07:31:40 +00:00
Igor Sysoev
5dc5945ccf
"$apr1", "{PLAIN}", and "{SSHA}" password methods in auth basic module
...
patch by Maxim Dounin
2011-05-16 14:54:50 +00:00
Igor Sysoev
ffc7271250
fix testing IPv4 address mapped to IPv6, when only IPv6 access rules are defined
2011-05-16 14:01:23 +00:00
Igor Sysoev
529b5f1938
support IPv4 mapped to IPv6 in geo module
2011-05-16 13:54:42 +00:00
Igor Sysoev
dd39f60014
support IPv4 mapped to IPv6 in geoip module
2011-05-16 13:50:58 +00:00
Igor Sysoev
868db976d7
fix debug logging
2011-05-13 10:06:56 +00:00
Igor Sysoev
0d6283918f
fix a broken cached response if bypass/no_cache directive values are different,
...
the bug has been introduced in r3700
2011-05-13 10:05:38 +00:00
Igor Sysoev
50733a53ec
geoip_org
...
patch by Alexander Uskov
2011-05-11 09:34:21 +00:00
Igor Sysoev
20b52bec63
fix typo
2011-05-11 09:25:37 +00:00
Igor Sysoev
dc336358ab
bump version
2011-05-11 09:19:48 +00:00
Igor Sysoev
49ae93034d
gdImageCopyRotated() may images of even height or width
...
patch by Adam Bocim
2011-05-10 12:04:57 +00:00
Igor Sysoev
e691d94a39
bump version
2011-05-04 12:20:32 +00:00
Igor Sysoev
eecc540da8
test zero value in an "if" directive consistently with predicates fixed in r3894
...
thanks to Maxim Dounin
2011-05-03 09:52:27 +00:00
Igor Sysoev
ef1f33b0db
Use more precise stat.st_blocks to account cache size on Unix
...
instead of file length rounded to a file system block size.
There is no similar way on Windows, so rounding to a cache->bsize is kept.
2011-04-22 10:06:43 +00:00
Igor Sysoev
64efecc2b5
allow to use $upstream_... variables in SSI
2011-04-21 10:07:07 +00:00
Igor Sysoev
423ee58e76
fix r3713
...
thanks to Igor A. Valcov
2011-04-19 12:29:16 +00:00
Igor Sysoev
14fe2dd94a
values starting with '0' were incorrectly assumed to be false
...
patch by Maxim Dounin
2011-04-15 12:24:18 +00:00
Igor Sysoev
432760ee4d
use MurmurHash2 for split_clients, because
...
its distribution is much better than CRC32's one
2011-04-15 10:59:57 +00:00
Igor Sysoev
0bd0b2894c
bump version
2011-04-15 10:58:44 +00:00
Igor Sysoev
d63104eea4
use memmove() in appropriate places
2011-04-12 08:02:46 +00:00
Igor Sysoev
d80bcbcd0f
"satisfy any" disabled custom 401 error page
2011-04-11 14:17:31 +00:00
Igor Sysoev
711eeb8514
fix CPU hog in cache manager
...
patch by Maxim Dounin
2011-04-08 15:27:53 +00:00
Igor Sysoev
ea38fe54bd
fix "image_filter rotate 180" and crop case
...
the bug has been introduced in r3879
2011-04-07 09:12:30 +00:00
Igor Sysoev
f352259dd6
bump version
2011-04-07 09:08:52 +00:00
Igor Sysoev
4956ac5108
reuse keepalive connections if there are no free worker connections
...
patch by Maxim Dounin
2011-04-04 12:26:53 +00:00
Igor Sysoev
fde7d51392
fix case when a host in fastcgi_pass, scgi_pass, and uwsgi_pass
...
is given by expression and refers to a defined upstream
2011-04-04 10:43:21 +00:00
Igor Sysoev
450c981ab9
image filter rotate
...
patch by Adam Bocim
2011-04-04 09:57:32 +00:00
Igor Sysoev
b8fb0a15a2
bump version
2011-04-04 09:46:00 +00:00
Igor Sysoev
921ac21acf
map tests values in low case only, so caseless regex has no sense
2011-03-21 15:18:59 +00:00
Igor Sysoev
c9d671cd81
$time_iso8601 log variable
...
patch by Michael Lustfield
2011-03-16 15:46:57 +00:00
Igor Sysoev
0519b43a77
allow regex as "map" parameter
2011-03-16 15:32:31 +00:00
Igor Sysoev
22434e4c72
fix warnings
2011-02-21 11:44:26 +00:00
Igor Sysoev
2a526d4969
bump version
2011-02-21 10:03:28 +00:00
Igor Sysoev
b2492255f8
always test proxy_redirect with slash, this fixes a case when nginx uses
...
proxy_pass "http://www ", upstream redirects to "http://www.host/uri ",
and nginx rewrites it as ".host/uri"
patch by Maxim Dounin
2011-02-17 11:54:35 +00:00
Igor Sysoev
64d5f9ba26
fix "error_page 497 https://" case
...
patch by Maxim Dounin
the bug has been introduced in r3782
2011-02-01 16:18:55 +00:00
Igor Sysoev
eb1a344dd3
utf8 parameter of geoip_country and geoip_city
...
patch by Denis F. Latypoff
2011-01-27 12:51:59 +00:00
Igor Sysoev
ab54e21633
bump version
2011-01-27 12:43:11 +00:00
Igor Sysoev
8dbc8a97dd
server_name $hostname
2011-01-20 15:31:24 +00:00
Igor Sysoev
d19c93d127
style fix: remove trailing spaces
2011-01-20 15:29:53 +00:00
Igor Sysoev
cfc5c25589
move setting conf->server_name in merge phase
2011-01-20 15:15:50 +00:00
Igor Sysoev
8e8251a317
fix large stderr handling without http cache
...
patch by Maxim Dounin
the bug has been introduced in r3461
2011-01-20 12:23:00 +00:00
Igor Sysoev
26cf2c96ea
introduce 494 code "Request Header Too Large"
2011-01-20 10:37:58 +00:00
Igor Sysoev
87f744c24b
use boolean expression instead of "if"
2010-12-15 14:10:33 +00:00
Igor Sysoev
f00e81d75a
rename NGX_HTTP_OWN_CODES to NGX_HTTP_NGINX_CODES
2010-12-14 23:04:26 +00:00
Igor Sysoev
dc61c0a153
bump version
2010-12-14 22:54:04 +00:00
Igor Sysoev
5644c43caf
always run regex in server_name to get captures for IPv6 addresses,
...
the same fix for IPv4 addresses has been made in r2584
2010-12-12 21:13:27 +00:00
Igor Sysoev
1fdb004f52
test wildcard tail hash existance for IPv6 addresses,
...
the same fix for IPv4 addresses has been made in r2581
2010-12-12 21:10:59 +00:00
Igor Sysoev
7c2611a231
style fix
2010-12-12 20:11:31 +00:00
Igor Sysoev
5491139caf
bump version
2010-12-06 14:40:40 +00:00
Igor Sysoev
ec4df838c8
"If-Unmodified-Since" support
2010-12-06 11:11:05 +00:00
Igor Sysoev
86ffd9b10f
bump version
2010-11-30 13:26:21 +00:00
Igor Sysoev
f5798d8c0d
fix comment
2010-11-29 19:41:53 +00:00
Igor Sysoev
bd4c8e88ee
revert processing NGX_OK in rewrite phase changed in r3798,
...
this broke "return 204" and "return code text"
2010-11-29 19:40:54 +00:00
Igor Sysoev
c219a6f7d0
bump version
2010-11-29 19:39:26 +00:00
Igor Sysoev
8c6144f022
revert processing NGX_OK and NGX_DONE in rewrite phase changed in r3634
2010-11-29 14:01:17 +00:00
Igor Sysoev
f83d6cf0f7
style fix
2010-11-26 13:58:28 +00:00
Igor Sysoev
02677300d1
fix building by icc8
2010-11-26 13:36:36 +00:00
Igor Sysoev
6946ed75b6
keepalive_disable
2010-11-26 12:40:56 +00:00
Igor Sysoev
97d32cb169
allow variable as "map" value
2010-11-26 12:25:51 +00:00
Igor Sysoev
07335d89df
use "\" to escape "default", "include", and "hostnames" values instead of "!"
2010-11-25 15:36:24 +00:00
Igor Sysoev
04e145d2da
allow empty value as "map" parameter
2010-11-25 15:24:29 +00:00
Igor Sysoev
67e6bafc90
allow expressions in the first "map" parameter
2010-11-25 15:22:43 +00:00
Igor Sysoev
601ca7cd6e
bump version
2010-11-24 13:41:37 +00:00
Igor Sysoev
a64b716b22
allow override redirect status in error_page
2010-10-18 10:14:00 +00:00
Igor Sysoev
c5d1790e1d
change order of limit_req lookup result processing
2010-10-14 09:20:01 +00:00
Igor Sysoev
622721a598
an excess was logged as 0.000 if requests were limited without delay:
...
*) use a real excess value instead of non-updated limit_req rbtree node field,
*) move inactivity queue handling inside ngx_http_limit_req_lookup()
since the node is not required outside the lookup function;
the bug has been introduced in r3184
2010-10-13 20:58:41 +00:00
Igor Sysoev
824856fc10
always update an aio_senfile connection flag accodring to a current
...
location configuration, this clears the flag for requests passed
via a keep-alive connection
2010-10-12 12:18:39 +00:00
Igor Sysoev
89eae52df8
file AIO read may be posted inside loop
2010-10-12 12:06:52 +00:00
Igor Sysoev
7087d5d72a
add default listen port at the end of server block parsing instead of
...
merge phase: otherwise the first server without an listen directive
did not become the default server if there was no explicit default server;
the bug has been introduced in r3218
2010-10-11 18:48:18 +00:00
Igor Sysoev
21dba41f5b
fix testing, the bug has been introduced in r3218
2010-10-08 11:42:05 +00:00
Igor Sysoev
5fffff997f
gzip_disable degradation
2010-10-04 15:03:00 +00:00
Igor Sysoev
81aa52829a
ngx_http_degraded()
2010-10-04 14:59:41 +00:00
Igor Sysoev
61d5e5e67f
bump version
2010-10-04 13:50:09 +00:00
Igor Sysoev
bfec9887ce
nginx uses SSL mode for a listen socket with any option set,
...
the bug has been introduced in r3765
2010-09-28 06:50:52 +00:00
Igor Sysoev
a397c7faaa
bump version
2010-09-28 06:46:58 +00:00
Igor Sysoev
f79878e5d9
allow duplicate listen ssl options
2010-09-27 11:48:12 +00:00
Igor Sysoev
9a62648f7b
fix typo
2010-09-13 12:44:43 +00:00
Igor Sysoev
12f4da4695
discard "secure_link_expires on|off"
2010-09-06 14:19:18 +00:00
Igor Sysoev
c13a4098b7
bump version
2010-09-06 11:07:07 +00:00
Igor Sysoev
94e9aaa8ad
new ngx_http_secure_link_module with secure_link, secure_link_md5, and
...
secure_link_expires
2010-09-02 14:37:16 +00:00
Igor Sysoev
a256afd064
fix race condition if during reconfiguration two cache managers try
...
to delete old inactive entries: one of them removes a entry just locked by
other manager from the queue and the rbtree as long inactive entry,
causes the latter manager to segfault leaving cache mutex locked,
the bug has been introduced in r3727
2010-09-02 14:31:47 +00:00
Igor Sysoev
3730543c26
gzip_disable msie6 ignored other patterns
2010-09-02 14:02:57 +00:00
Igor Sysoev
31e6fc82cc
gzip_disable compiled always the first pattern only
2010-09-02 14:01:58 +00:00
Igor Sysoev
4db3b3e2c4
gzip_disable msie6 did not inherited if nginx was built without PCRE
2010-09-02 13:54:28 +00:00
Igor Sysoev
f7dd767e57
if a location is specified by regex, then always compile an "alias",
...
even into one static string script: this elimates testing this
too specific case inside ngx_http_map_uri_to_path()
2010-08-26 12:33:08 +00:00
Igor Sysoev
f380df5e20
bump version
2010-08-25 12:30:08 +00:00
Igor Sysoev
d39b9ec19d
image_filter_jpeg_quality supports variables
2010-08-06 15:55:05 +00:00
Igor Sysoev
7268cc8c6e
zero fcn->updating after node allocation
2010-08-04 13:34:23 +00:00
Igor Sysoev
2b74841a4f
error status codes could be cached for next request only,
...
the bug has been introduced in r3712
2010-08-04 12:55:27 +00:00
Igor Sysoev
541d8c698a
we can free GeoIPRecord just after GeoIP_region_name_by_code(),
...
because it returns a statically allocated string
2010-08-03 18:38:08 +00:00
Igor Sysoev
a999586594
fix segfault, the bug has been introduced in r3738
2010-08-03 18:27:56 +00:00
Igor Sysoev
6dd6aefaa7
bump version
2010-08-03 18:24:18 +00:00
Igor Sysoev
395f35e5fa
$geoip_region_name
2010-08-03 15:01:34 +00:00
Igor Sysoev
dc87ab5a69
$geoip_dma_code and $geoip_area_code
2010-08-03 14:19:49 +00:00
Igor Sysoev
41212d27fa
fix fastcgi_split_path_info, if URI was not fully captured
2010-08-03 13:35:48 +00:00
Igor Sysoev
81cd5e4f6f
*) make code consistent to fastcgi, etc
...
*) remove STUB comment
2010-08-03 12:59:14 +00:00
Igor Sysoev
e4994fbacb
use NULL instead of 0
2010-08-03 12:53:06 +00:00
Igor Sysoev
b16b8ddae6
delete surplus assignment
2010-08-03 09:42:53 +00:00
Igor Sysoev
90f95522a5
inherit proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass inside
...
a limit_except block if no handler was defined for the block
2010-08-03 09:24:25 +00:00
Igor Sysoev
0ec5492189
ngx_http_conf_get_module_srv_conf() and ngx_http_conf_get_module_loc_conf()
...
may be used at merge phase
2010-08-02 15:28:04 +00:00
Igor Sysoev
6d9d07b16a
fix directive type
2010-08-02 12:47:52 +00:00
Igor Sysoev
029299aaa4
change logic slightly
2010-08-02 12:34:15 +00:00
Igor Sysoev
c7b2e2a570
change order
2010-08-02 12:32:33 +00:00
Igor Sysoev
2108fabea2
*) delete cache key node after a cache file removal
...
*) move fileless cache key node removal in ngx_http_file_cache_delete()
2010-08-02 12:27:58 +00:00
Igor Sysoev
1cd46b88a4
count cache key node usage for cached error statuses
2010-07-30 12:41:55 +00:00
Igor Sysoev
09ce1e2d89
do not free unused cache node if cache min_uses > 1,
...
the bug has been introduced in r3695, r3708, r3711
2010-07-30 10:20:08 +00:00
Igor Sysoev
10f8d5d74e
return 415 on too big image in image filter
2010-07-29 15:40:03 +00:00
Igor Sysoev
7c50789e2a
change default server_name_in_redirect value to off,
...
since default server_name is empty
2010-07-29 10:01:31 +00:00
Igor Sysoev
a69cf2d005
use an empty name as default server_name instread of hostname
2010-07-29 10:00:04 +00:00
Igor Sysoev
e8cf60da34
allow server_name "" as the first name
2010-07-29 09:55:54 +00:00
Igor Sysoev
6f2796af04
bump version
2010-07-29 08:10:22 +00:00
Igor Sysoev
9135a0e022
move debug logging inside ngx_http_file_cache_free()
2010-07-28 15:56:56 +00:00
Igor Sysoev
14c95f99ac
fix $request_time for subrequests
2010-07-28 15:51:50 +00:00
Igor Sysoev
406a68003c
several changes in cache cleanup handling:
...
*) now ngx_http_file_cache_cleanup() uses ngx_http_file_cache_free()
*) ngx_http_file_cache_free() interface has been changed to accept r->cache
ngx_http_file_cache_cleanup() must use r->cache, but not r, because
there can be several r->cache's during request processing, r->cache may
be NULL at request finalising, etc.
*) test if updating request does not complete correctly
2010-07-28 15:49:34 +00:00
Igor Sysoev
18b36e5035
fix r3708 and r3695: valid_sec is set only for caching error status codes
2010-07-27 19:11:17 +00:00
Igor Sysoev
6af21b7cda
fix r3707: cache node should be freed be a response is not cached
2010-07-27 15:26:33 +00:00
Igor Sysoev
3cf3100977
fix typo
2010-07-27 13:04:13 +00:00
Igor Sysoev
4b7637adb6
fix r3695: this commit
...
*) freed valid keys zone node
*) and did not decrease cache size, so cache manager process ete CPU time,
if cache checking max_size was enabled
2010-07-27 11:22:59 +00:00
Igor Sysoev
f297d0dd27
an intercepted error code was not cached
2010-07-19 15:31:46 +00:00
Igor Sysoev
cc963cd7e2
style fix
2010-07-19 15:29:16 +00:00
Igor Sysoev
b1327bd842
initialize r->cache->file.fd with NGX_INVALID_FILE
2010-07-19 15:28:22 +00:00
Igor Sysoev
1daef7d1b0
bump version
2010-07-19 15:27:06 +00:00
Igor Sysoev
47f5f947bc
add warnings for proxy_no_cache and fastcgi_no_cache
2010-07-19 09:55:43 +00:00
Igor Sysoev
f7d659aa52
proxy_cache_pass, fastcgi_cache_bypass, uwsgi_cache_bypass, scgi_cache_bypass
2010-07-19 09:36:04 +00:00
Igor Sysoev
6a47b43234
rename ngx_http_file_cache_create() to ngx_http_file_cache_new()
2010-07-16 10:01:49 +00:00
Igor Sysoev
9aa3d7f667
ngx_http_file_cache_create()
2010-07-15 14:01:02 +00:00
Igor Sysoev
9e9cbee81e
ngx_http_file_cache_name()
2010-07-15 13:46:32 +00:00
Igor Sysoev
0e73a5bfb7
style fix
2010-07-15 13:10:05 +00:00
Igor Sysoev
85992f9eb3
delete empty cache zone node if we could not get response to cache
2010-07-15 13:08:51 +00:00
Igor Sysoev
4769d10604
fix scgi_no_cache and uwsgi_no_cache initialization
2010-07-14 11:29:19 +00:00
Igor Sysoev
f3870c66df
use ngx_http_test_predicates(), ngx_http_set_predicate_slot()
...
delete ngx_http_cache(), ngx_http_no_cache_set_slot()
2010-07-14 11:15:45 +00:00
Igor Sysoev
7fc29052e8
ngx_http_test_predicates(), ngx_http_set_predicate_slot()
2010-07-14 11:13:59 +00:00
Igor Sysoev
e48f042f40
bump version
2010-07-14 11:09:56 +00:00
Igor Sysoev
5a19097c9b
allow setfib=0
2010-07-13 10:17:09 +00:00
Igor Sysoev
618703b5b6
use xmlSAXHandler._private field to store xslt filter context
2010-07-12 12:52:01 +00:00
Igor Sysoev
a2d9995ca1
fix building by msvc7
2010-07-08 16:17:11 +00:00
Igor Sysoev
7aa1f5bf4a
update r->buffered after processing SSI command,
...
the bug has been probably introduced in r2378
2010-07-07 10:17:19 +00:00
Igor Sysoev
a2e846242f
bump version
2010-07-07 10:09:44 +00:00
Igor Sysoev
0bd7a7d894
listen setfib=X
2010-07-05 13:49:16 +00:00
Igor Sysoev
1a5d7553da
fix case of partially matched patterns on buffer border in sub_filter
2010-07-05 13:45:10 +00:00
Igor Sysoev
a5ee005a27
fix recognition of SSLv2 Client Hello Packet large than 255 bytes
2010-07-05 13:35:20 +00:00
Igor Sysoev
0cb0c67e3a
do not use a cache headers set to hide
2010-07-02 10:05:40 +00:00
Igor Sysoev
0bd1809f05
treat Set-Cookie as a header that forbids caching
2010-07-02 09:49:27 +00:00
Igor Sysoev
9a00d69413
update the previous commit
2010-07-02 09:28:50 +00:00
Igor Sysoev
7e14b50c28
use shared ngx_http_upstream_ignore_headers_masks[]
2010-07-02 09:25:38 +00:00
Igor Sysoev
187538d1eb
bump version
2010-07-01 12:56:32 +00:00
Igor Sysoev
fb7b45d20e
remove r->zero_body unused since the previous commit
2010-06-30 14:42:15 +00:00
Igor Sysoev
ffcae99251
Fix processing
...
error_page 502 504 /zero;
location = /zero { return 204; }
The bug has been introduced in r3634.
The fix also allow to use:
error_page 502 504 = /zero;
location = /zero { return 200; }
This case still does not work:
error_page 502 504 /zero;
location = /zero { return 200; }
2010-06-30 14:39:28 +00:00
Igor Sysoev
bcd78e22e9
change logic introduced in r3649:
...
*) now $uid_set is cacheable again
*) allow to see at any processing stage that uid cookie is remarked
2010-06-30 14:30:55 +00:00
Igor Sysoev
178cd2da2b
style fix: remove tabs
2010-06-30 14:28:54 +00:00
Igor Sysoev
6db47f4c81
set uid values for main request only
2010-06-30 13:15:20 +00:00
Igor Sysoev
ffcc2f4a9e
test binary geo range base size
2010-06-30 10:13:51 +00:00
Igor Sysoev
3b0ddc2097
test the second binary geo range base existence
2010-06-30 10:12:46 +00:00
Igor Sysoev
e3d88fb8eb
test binary geo ranges base only for ranges
2010-06-30 10:05:56 +00:00
Igor Sysoev
4655c721e8
test binary gep range base mtime
2010-06-30 10:02:05 +00:00
Igor Sysoev
edf29ef8cd
binary geo ranges base cache
2010-06-29 16:06:20 +00:00
Igor Sysoev
325bd4ea98
change duplicate default geo range processing
2010-06-29 13:36:16 +00:00
Igor Sysoev
a81a383053
fix building without IPv6 after the previous commit
2010-06-25 13:17:33 +00:00
Igor Sysoev
80dd7e5015
Now $uid_set may be used at any time, r2013 states the same is wrong.
...
Besides, now $uid_set is not cacheable and may have two values:
before and after header filter processing.
This allows to log case, when uid cookie is remarked.
2010-06-25 12:16:31 +00:00
Igor Sysoev
55c3f1b31b
make logic more clear
2010-06-25 12:06:37 +00:00
Igor Sysoev
23d053fa97
delete stale comments
2010-06-25 12:05:12 +00:00
Igor Sysoev
70485d6b7c
eliminate a number of ranges: about 18,000 /16 networks are empty,
...
this change saves about 70K/140K on 32/64-bit platforms
2010-06-24 15:26:05 +00:00
Igor Sysoev
e3693e3b37
break cycle early
2010-06-24 13:16:19 +00:00
Igor Sysoev
aa6936e61a
style fix
2010-06-23 16:34:54 +00:00
Igor Sysoev
0923d08148
change ngx_http_variable_value_node_t to more generic ngx_str_node_t
2010-06-23 15:31:33 +00:00
Igor Sysoev
2c72df5ed4
bump version
2010-06-23 14:49:57 +00:00
Igor Sysoev
ee5f9e50b9
ngx_http_scgi_module
2010-06-18 15:51:14 +00:00
Igor Sysoev
4115de9fe3
Test regex location if URI matches exactly to non-exact location.
...
Revert a feature introduced in r2028. The feature confuses mostly,
the only gain was not to test regex for a frequent request such as
"/" in "locaiton /".
2010-06-18 15:38:31 +00:00
Igor Sysoev
082d9965a3
use ngx_http_send_response() in empty_gif
2010-06-18 15:17:07 +00:00
Igor Sysoev
b2ee47c0c7
add files missed in the previuos commit
2010-06-18 15:16:18 +00:00
Igor Sysoev
4c1b0770ca
return code text
2010-06-18 15:15:20 +00:00
Igor Sysoev
01213e18a7
ngx_http_send_response()
2010-06-18 15:08:44 +00:00
Igor Sysoev
ebd883092b
303 See Other
2010-06-18 14:58:52 +00:00
Igor Sysoev
0f6ae5906d
style fix
2010-06-15 15:30:00 +00:00
Igor Sysoev
2515f8efe9
fix r3628
2010-06-15 15:27:06 +00:00
Igor Sysoev
1cc1b311af
make code more obviuos
2010-06-15 15:21:37 +00:00
Igor Sysoev
54b35b009a
use ngx_http_parse_status_line()
2010-06-15 15:15:06 +00:00
Igor Sysoev
0aae446c7c
ngx_http_parse_status_line()
2010-06-15 15:13:34 +00:00
Igor Sysoev
bef315509b
update the previous commit
2010-06-15 15:09:18 +00:00
Igor Sysoev
85fe9bf6b1
support CGI-style response
2010-06-15 14:30:13 +00:00
Igor Sysoev
68294d776d
style fix
2010-06-15 12:45:33 +00:00
Igor Sysoev
dede73dda9
bump version
2010-06-15 12:41:13 +00:00
Igor Sysoev
da7b5e15de
allow spaces in URI
2010-06-15 09:31:19 +00:00
Igor Sysoev
ea16b14cc5
PATCH method
2010-06-10 11:08:28 +00:00
Igor Sysoev
34cd1cc656
allow Destination URL without host
2010-06-10 08:17:16 +00:00
Igor Sysoev
f0bf9956dc
delete empty Server and Date header used only in proxy mode
2010-06-08 19:33:53 +00:00
Igor Sysoev
a17adae005
change variable names
2010-06-08 16:15:47 +00:00
Igor Sysoev
741caead25
delete surplus flush
2010-06-08 13:43:20 +00:00
Igor Sysoev
cd04da475d
do not try to calculate procent sum if there was an error
2010-06-08 09:06:57 +00:00
Igor Sysoev
27b54fda94
delete useless code
2010-06-07 14:37:56 +00:00
Igor Sysoev
82e1933529
fix rewritten Refresh header length
2010-06-07 14:33:50 +00:00
Igor Sysoev
1f5cf36a27
202 Accepted status code
2010-06-07 13:38:39 +00:00
Igor Sysoev
7935d4bff7
bump version
2010-06-07 13:34:56 +00:00
Igor Sysoev
4cf7f2727d
fix "/dir/%3F../" and "/dir/%23../" cases
2010-06-04 16:05:55 +00:00
Igor Sysoev
04e1156d2e
test default NTFS stream "::$DATA"
2010-06-04 15:37:49 +00:00