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
9c5d25179c
Fix of the previous commit: is_directio flag processing introduced in r4077
...
is still worthwhile.
2011-09-14 14:28:55 +00:00
Igor Sysoev
7ffb73c6b7
Bugfix: open_file_cache did not update file info on retest.
...
If file inode was not changed, cached file information was not updated
on retest. As a result stale information might be cached forever if file
attributes was changed and/or file was extended.
This fix also makes obsolete r4077 change of is_directio flag handling,
since this flag is updated together with other file information.
2011-09-14 14:12:35 +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
Ruslan Ermilov
59efbc4bcb
In Mac OS X Lion, Apple deprecated the use of the system OpenSSL library
...
in favour of their CommonCrypto library. This change adds a work-around
that allows nginx to still be built on Lion with OpenSSL.
2011-09-13 09:18:43 +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
Maxim Dounin
4f65a05d18
Bugfix: open_file_cache lost is_directio flag.
...
On file retest open_file_cache lost is_directio if file wasn't changed.
This caused unaligned operations under Linux to fail with EINVAL.
It wasn't noticeable with AIO though, as errors wasn't properly logged.
2011-09-05 16:36:19 +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
Maxim Dounin
82854d0d78
Proper setting of read->eof in pipe code.
...
Setting read->eof to 0 seems to be just a typo. It appeared in
nginx-0.0.1-2003-10-28-18:45:41 import (r164), while identical code in
ngx_recv.c introduced in the same import do actually set read->eof to 1.
Failure to set read->eof to 1 results in EOF not being generally detectable
from connection flags. On the other hand, kqueue won't report any read
events on such a connection since we use EV_CLEAR. This resulted in read
timeouts if such connection was cached and used for another request.
2011-09-01 15:10:41 +00:00
Maxim Dounin
a9e3c65d22
Proper SSL shutdown handling.
...
If connection has unsent alerts, SSL_shutdown() tries to send them even
if SSL_set_shutdown(SSL_RECEIVED_SHUTDOWN|SSL_SENT_SHUTDOWN) was used.
This can be prevented by SSL_set_quiet_shutdown(). SSL_set_shutdown()
is required nevertheless to preserve session.
2011-09-01 13:49:36 +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
566dfe0c7f
SIGWINCH/NOACCEPT signal is disabled now in non-daemon mode.
...
Non-daemon mode is currently used by supervisord, daemontools and so on
or during debugging. The NOACCEPT signal is only used for online upgrade
which is not supported when nginx is run under supervisord, etc.,
so this change should not break existant setups.
2011-08-22 12:34:48 +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
de1a3e1e0c
Fix buffer overrun under Windows.
2011-08-22 10:07:27 +00:00
Maxim Dounin
ec8186c733
Move SO_ACCEPTFILTER and TCP_DEFER_ACCEPT checks into configure.
...
NetBSD 5.0+ has SO_ACCEPTFILTER support merged from FreeBSD, and having
accept filter check in FreeBSD-specific ngx_freebsd_config.h prevents it
from being used on NetBSD. Therefore move the check into configure (and
do the same for Linux-specific TCP_DEFER_ACCEPT, just to be in line).
2011-08-21 11:37:37 +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
65c32b255d
Complain on invalid log levels.
...
Previously only first log level was required to be correct, while error_log
directive in fact accepts list of levels (e.g. one may specify "error_log ...
debug_core debug_http;"). This resulted in (avoidable) wierd behaviour on
missing semicolon after error_log directive, e.g.
error_log /path/to/log info
index index.php;
silently skipped index directive and it's arguments (trying to interpret
them as log levels without checking to be correct).
2011-08-18 21:48:13 +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
b0b6bcedfc
fix SSL connection issues on platforms with 32-bit off_t
...
patch by Maxim Dounin
2011-07-22 12:53:04 +00:00
Igor Sysoev
a7ed0951e3
fix build by gcc46 with -Wunused-value option
...
patch by Maxim Dounin
2011-07-22 10:43:50 +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
99f2b9e063
fix building by MSVC
2011-07-18 15:00:05 +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
36aadf7eba
fix building on FreeBSD 6 or earlier against system md5
2011-05-27 13:30:53 +00:00
Igor Sysoev
e620fdac65
make built-in ngx_md5_update() interface consistent with other implemenations
2011-05-27 10:00:46 +00:00
Igor Sysoev
c4793b6505
fix building --without-http_auth_basic_module,
...
the bug has been introduced in r3923
2011-05-26 07:32:48 +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
e2c8ad7122
use POSIX semaphores in shmtx instead of sched_yield()
...
number of spinlock spins are increased twice
2011-05-10 11:39:13 +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
2bd01a0f01
revert r3864, it may cause kernel panic on some kernels while working with IPv6
2011-04-23 17:27:55 +00:00
Igor Sysoev
efde3eb92e
fix building by gcc 4.6 without --with-debug
2011-04-23 17:25:06 +00:00
Igor Sysoev
c37192b537
style fix: remove trailing spaces
2011-04-23 13:11:17 +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
b3451785fe
an internal MD5 implemenation
...
patch by Maxim Dounin
2011-04-15 15:58:06 +00:00
Igor Sysoev
9813a1999c
fix segfault in IPv6 parsing while processing invalid IPv4 address X.YYYY.Z
...
patch by Maxim Dounin
2011-04-15 13:50:27 +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
42f1e1cb96
ngx_murmur_hash2()
2011-04-15 10:59:24 +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
32c73df97a
remove semicolon, because it is already in "nginx: " prefix
2011-02-21 11:47:28 +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
d53c836214
fix u->one_addr handling in ngx_inet_resolve_host()
...
patch by Maxim Dounin
2011-02-17 15:01:16 +00:00
Igor Sysoev
95899a3f19
use backlog -1 on Linux
...
thanks to Andrei Nigmatulin
2011-02-17 14:14:50 +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
4d6db4a7ab
set current atime while setting mtime
...
patch by Andrei Nigmatulin
2011-02-11 08:02: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
cc878dc6ac
use SwitchToThread() instead of Sleep(0), because the later
...
may not yield control, if there is no thread with higher priority
2011-01-20 13:06:21 +00:00
Igor Sysoev
3d86ad3f95
fix building on Fedora 14
...
patch by Kirill A. Korinskiy
2011-01-20 12:33:17 +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
2567c92ace
allow "env" to work in the single process mode
2010-12-13 10:55:15 +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
076ad1672b
remove semicolon, because it is already in "nginx: " prefix
2010-12-11 10:59:26 +00:00
Igor Sysoev
5491139caf
bump version
2010-12-06 14:40:40 +00:00
Igor Sysoev
3e3ee60b99
remove SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG becuase of CVE-2010-4180
2010-12-06 11:17:03 +00:00
Igor Sysoev
ec4df838c8
"If-Unmodified-Since" support
2010-12-06 11:11:05 +00:00
Igor Sysoev
0c39c27412
fix building by msvc8 introduced by the previous commit
2010-12-02 14:20:51 +00:00
Igor Sysoev
a07d6ec39f
fallback to accept() if accept4() is not implemented,
...
the issue has been introduced in r3787
2010-12-02 10:05:41 +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
c19b848976
add "nginx: " prefix when logging to the stderr
2010-11-29 15:01:06 +00:00
Igor Sysoev
a979d9fb30
move ngx_strerror_init() at the very start
2010-11-29 15:00:02 +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
d4b08c9134
allocate last zero byte in ngx_crypt()
2010-11-29 09:23:25 +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
7f31a2098d
use copied strerror() messages and autoconfigured sys_nerr value
2010-11-25 11:04:03 +00:00
Igor Sysoev
40747ad861
Linux accept4() support
2010-11-25 10:15:04 +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
3bff22f2e2
update event flags after successful io_submit()
2010-10-12 12:11:11 +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
49ac2b2b45
decrease resolver errors level to error
2010-09-27 11:23:45 +00:00
Igor Sysoev
8c70e67f7b
worker_rlimit_core should be off_t
2010-09-15 15:24:21 +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
8a9f761927
add "Global\" prefix for signal events
2010-09-02 13:49:05 +00:00
Igor Sysoev
2cb30f153f
the -q switch
2010-09-02 13:43:02 +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
0e0e0af51b
escape ";" in arguments
2010-07-30 13:25:19 +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