Compare commits

..

26 Commits

Author SHA1 Message Date
8ebcad308a ngx_openresty release 1.0.4.0. 2011-07-12 18:32:04 +08:00
4e2b3dcbbf upgraded ngx_drizzle to v0.1.1rc1 and released ngx_openresty 1.0.4.0rc5. 2011-07-12 17:35:26 +08:00
ca408fc450 Config::Config is missing on CentOS 6 by default. sigh. fixed it by using ":" regardless the current OS. 2011-07-11 18:19:26 +08:00
092b2f6b83 upgraded ngx_echo to v0.37rc1 and also marked ngx_openresty 1.0.4.0rc3. 2011-07-11 18:04:03 +08:00
c56e7e8165 we no longer depend on ExtUtils::MakeMaker because it is not perl's core module. thanks Lance for reporting this issue on CentOS 6. 2011-07-11 17:58:30 +08:00
b40119877a upgraded ngx_srcache to v0.12 and marked ngx_openresty 1.0.4.0rc2. 2011-07-11 13:25:05 +08:00
5505eac72b upgraded the nginx core to 1.0.4 and released ngx_openresty 1.0.4.0rc1. 2011-07-08 20:23:59 +08:00
22d6c02398 ngx_openresty release 0.8.54.9. 2011-07-08 19:23:09 +08:00
4bd257d4dc upgraded ngx_echo to v0.36 and ngx_memc to v0.12. marked ngx_openresty 0.8.54.9rc6. 2011-07-08 19:00:28 +08:00
299399231a applied the subrequest loop fix patch from Maxim Dounin and released ngx_openresty 0.8.54.9rc5. 2011-07-07 16:55:32 +08:00
60109db59a added Maxim Dounin's patches. 2011-07-07 12:14:54 +08:00
5714d20c1e upgraded ngx_rds_json to v0.11, ngx_headers_more to v0.15, and ngx_drizzle to v0.1.0; also marked ngx_openresty 0.8.54.9rc4. 2011-07-06 12:29:28 +08:00
a69dd6463b upgraded ngx_drizzle to 0.0.15rc14 and ngx_lua to 0.2.0; also released ngx_openresty 0.8.54.9rc3. 2011-07-05 16:33:12 +08:00
c7cffaaf77 upgraded ngx_lua to 0.1.6rc18 and released ngx_openresty 0.8.54.9rc2. 2011-07-04 20:28:57 +08:00
ab2cdb5a2f upgraded ngx_redis2 to 0.07rc5 and released ngx_openresty 0.8.54.9rc1. 2011-07-03 17:48:39 +08:00
e101ac777a released ngx_openresty 0.8.54.8; also updated README to point to openresty.org. 2011-07-01 12:25:35 +08:00
147dba8f62 upgraded ngx_echo to 0.36rc6, ngx_lua to 0.1.6rc17, ngx_srcache to 0.12rc6, and ngx_redis2 to 0.07rc4 and also released ngx_openresty 0.8.54.8rc2. 2011-07-01 11:58:26 +08:00
5a7890001b added --with-libdrizzle option to specify the (lib)drizzle installation prefix. now ngx_drizzle is disabled by default. you need to enable it via the --with-http_drizzle_module option. 2011-06-28 18:56:37 +08:00
7fcf5e3e82 we no longer bundle libdrizzle because libdrizzle 1.0 is distributed with the drizzle server and hard to separate. 2011-06-28 18:35:10 +08:00
2055f54dbb released ngx_openresty 0.8.54.7. 2011-06-27 21:22:57 +08:00
cdcfac980e marked ngx_openresty 0.8.54.7rc5. 2011-06-27 21:12:13 +08:00
0597fedf6e we should preserve timestamps when copying bundle/ to build/. 2011-06-27 21:11:08 +08:00
0556e081b8 upgraded ngx_xss to 0.03rc3, ngx_drizzle to 0.0.15rc11, ngx_memc to 0.12rc2, ngx_srcache to 0.12rc5, ngx_redis2 to 0.07rc3; also marked ngx_openresty 0.8.54.7rc4. 2011-06-27 20:47:41 +08:00
69a2effd7b upgraded LuaJIT to 2.0.0beta8, ngx_lua to 0.1.6rc15, and ngx_echo to 0.36rc4; also released ngx_openresty 0.8.54.7rc3. 2011-06-27 20:00:19 +08:00
7244088ed0 upgraded ngx_lua to v0.1.16rc14 and ngx_headers_more to v0.15rc3; also released ngx_openresty 0.8.54.7rc2. 2011-06-16 21:10:52 +08:00
9da7200899 upgraded ngx_headers_more to v0.15rc2 and ngx_lua to v0.1.6rc13. released ngx_openresty 0.8.54.7rc1. 2011-06-15 18:22:19 +08:00
18 changed files with 638 additions and 606 deletions

112
README
View File

@ -9,90 +9,11 @@ that all these modules are played well together.
The bundled software components are copyrighted by the respective copyright holders.
A quick note to Debian and Ubuntu users:
You're recommended to install the following packages using apt-get before
installing this bundle:
The homepage for this project is http://openresty.org.
apt-get install libreadline-dev libpcre3-dev libssl-dev perl
If you want to enable LuaJIT, ensure that your system's "ldconfig"
utility is in your PATH environment. You can check out
the path of your "ldconfig" by using the "whereis" command:
whereis ldconfig
On Debian systems, it's usually /sbin, and you just need to add
it to your PATH this way:
PATH=/sbin:$PATH
export PATH
A quick note to Fedora/RedHat users:
You're recommended to install the following packages using yum before
installing this bundle:
yum install readline-devel pcre-devel openssl-devel
A quick note to Mac OS X (Darwin) users:
You're recommended to install prerequisites PCRE using some package
management tool, like Homebrew:
brew install pcre
Alternatively you can install PCRE from source all by yourself :)
To build ngx_openresty, you need a working perl (perl 5.6.0 or better)
in your PATH environment, and then follow the following steps:
1. download the latest ngx_openresty tarball can be downloaded from
http://agentzh.org/misc/nginx/ngx_openresty-0.8.54.6.tar.gz
we will eventually migrate to the openresty.org domain.
2. and then enter the ngx_openresty-0.8.54.6/ directory,
and type the following command to configure:
./configure
by default, --prefix=/usr/local/openresty is assumed. You can
specify various options, as in
./configure --prefix=/opt/openresty \
--with-luajit \
--without-http_drizzle_module \
--with-http_iconv_module \
--with-http_postgres_module
try ./configure --help to see more options.
For Solaris, it's common to install libraries like OpenSSL to /lib,
so when it complaints about OpenSSL and you have indeed
already installed it, specify the --with-ld-opt='-L/lib' option.
Errors in running the ./configure script can be found in this file:
build/nginx-0.8.54/objs/autoconf.err
3. build everything locally
make
Note that, "make -jN" may not work at least for FreeBSD's "bsdmake"; use
gmake (i.e., GNU make) instead or avoid using the jobserver feature with
your make.
4. install ngx_openresty into the target directory that you specified by
the --prefix option in Step 2.
make install
Then you can start your server this way:
/usr/local/openresty/nginx/sbin/nginx -p /path/to/your/server/root \
-c /path/to/your/nginx.conf
assuming you're using the default "prefix", i.e., /usr/local/openresty, in Step 2.
For the users:
Visit http://openresty.org/#Download to download the latest bundle tarball, and
follow the installation instructions in the page http://openresty.org/#Installation.
For bundle maintainers:
@ -106,31 +27,6 @@ For bundle maintainers:
at the top of the bundle source tree.
The following packages are bundled in the 0.8.54.6 release:
LuaJIT-2.0.0-beta7
array-var-nginx-module-0.02
auth-request-nginx-module-0.2
drizzle-nginx-module-0.0.15rc10
echo-nginx-module-0.36rc3
encrypted-session-nginx-module-0.01
form-input-nginx-module-0.07rc4
headers-more-nginx-module-0.15rc1
iconv-nginx-module-0.10rc3
libdrizzle-0.8
lua-5.1.4
memc-nginx-module-0.12rc1
nginx-0.8.54
ngx_devel_kit-0.2.17
ngx_lua-0.1.6rc12
ngx_postgres-0.8
rds-json-nginx-module-0.11rc2
redis2-nginx-module-0.07rc2
set-misc-nginx-module-0.21
srcache-nginx-module-0.12rc4
upstream-keepalive-nginx-module-0.3
xss-nginx-module-0.03rc2
REPORT BUGS
You're very welcome to report issues on GitHub:

View File

@ -1,17 +0,0 @@
--- LuaJIT-2.0.0-beta7/Makefile 2011-05-05 22:30:00.000000000 +0800
+++ LuaJIT-2.0.0-beta7-patched/Makefile 2011-05-26 15:32:02.888893148 +0800
@@ -113,13 +113,8 @@
$(RM) $(FILE_PC).tmp
cd src && $(INSTALL_F) $(FILES_INC) $(INSTALL_INC)
cd lib && $(INSTALL_F) $(FILES_JITLIB) $(INSTALL_JITLIB)
+ $(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM)
@echo "==== Successfully installed LuaJIT $(VERSION) to $(PREFIX) ===="
- @echo ""
- @echo "Note: the beta releases deliberately do NOT install a symlink for luajit"
- @echo "You can do this now by running this command (with sudo):"
- @echo ""
- @echo " $(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM)"
- @echo ""
##############################################################################

View File

@ -0,0 +1,24 @@
diff -ur nginx-0.8.54/auto/cc/gcc nginx-0.8.54-patched/auto/cc/gcc
--- nginx-0.8.54/auto/cc/gcc 2011-06-27 19:53:00.205737804 +0800
+++ nginx-0.8.54-patched/auto/cc/gcc 2011-06-27 19:53:13.837741087 +0800
@@ -169,7 +169,7 @@
# stop on warning
-CFLAGS="$CFLAGS -Werror"
+#CFLAGS="$CFLAGS -Werror"
# debug
CFLAGS="$CFLAGS -g"
diff -ur nginx-0.8.54/auto/cc/icc nginx-0.8.54-patched/auto/cc/icc
--- nginx-0.8.54/auto/cc/icc 2011-06-27 19:52:56.370157068 +0800
+++ nginx-0.8.54-patched/auto/cc/icc 2011-06-27 19:53:19.508916811 +0800
@@ -139,7 +139,7 @@
esac
# stop on warning
-CFLAGS="$CFLAGS -Werror"
+#CFLAGS="$CFLAGS -Werror"
# debug
CFLAGS="$CFLAGS -g"

View File

@ -0,0 +1,27 @@
# HG changeset patch
# User Maxim Dounin <mdounin@mdounin.ru>
# Date 1309799136 -14400
# Node ID 99e276bba8596bc4df9e638482ee413f4c6bf700
# Parent e7b2f945d55ae44a2295facf9e3336dc4633e5b5
Core: fix body with request_body_in_single_buf.
If there were preread data and request body was big enough first part
of request body was duplicated.
See report here:
http://nginx.org/pipermail/nginx/2011-July/027756.html
diff --git a/src/http/ngx_http_request_body.c b/src/http/ngx_http_request_body.c
--- a/src/http/ngx_http_request_body.c
+++ b/src/http/ngx_http_request_body.c
@@ -372,7 +372,9 @@ ngx_http_do_read_client_request_body(ngx
}
}
- if (r->request_body_in_file_only && rb->bufs->next) {
+ if (rb->bufs->next
+ && (r->request_body_in_file_only || r->request_body_in_single_buf))
+ {
rb->bufs = rb->bufs->next;
}

View File

@ -0,0 +1,17 @@
# HG changeset patch
# User Maxim Dounin <mdounin@mdounin.ru>
# Date 1309776931 -14400
# Node ID e7b2f945d55ae44a2295facf9e3336dc4633e5b5
# Parent 610e909bb9e29766188aa86fae3abe0bd3432940
Core: fix body if it's preread and there are extra data.
--- nginx-0.8.54/src/http/ngx_http_request_body.c 2011-07-05 12:11:21.619264633 +0800
+++ nginx-0.8.54-patched/src/http/ngx_http_request_body.c 2011-07-05 12:14:30.694321554 +0800
@@ -141,6 +141,7 @@
/* the whole request body was pre-read */
+ b->last = b->pos + r->headers_in.content_length_n;
r->header_in->pos += (size_t) r->headers_in.content_length_n;
r->request_length += r->headers_in.content_length_n;

View File

@ -0,0 +1,40 @@
# HG changeset patch
# User Maxim Dounin <mdounin@mdounin.ru>
# Date 1309187571 -14400
# Node ID 283a416b2235d5383c12a975edc8866f007fb628
# Parent f5fc40783ddcbf4db33859ee2a9bce54cf32c350
Core: protect from subrequest loops.
Without protection subrequest loop results in r->count overflow and
SIGSEGV. Protection was broken in 0.7.25.
Note that this also limits number of parallel subrequests. This
wasn't exactly the case before 0.7.25 as local subrequests were
completed directly.
See here for details:
http://nginx.org/pipermail/nginx-ru/2010-February/032184.html
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -2287,7 +2287,6 @@ ngx_http_subrequest(ngx_http_request_t *
sr->start_sec = tp->sec;
sr->start_msec = tp->msec;
- r->main->subrequests++;
r->main->count++;
*psr = sr;
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -1981,6 +1981,7 @@ ngx_http_finalize_request(ngx_http_reque
if (r == c->data) {
r->main->count--;
+ r->main->subrequests++;
if (!r->logged) {

View File

@ -0,0 +1,37 @@
# HG changeset patch
# User Maxim Dounin <mdounin@mdounin.ru>
# Date 1309424678 -14400
# Node ID 60a67d95638f9187418a3a26c1fcb9f06be7a4fc
# Parent 1c167244d2fdb064c159012c50a7ae3fd1ed254a
Fix another gcc46 unused-but-set warning.
diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c
--- a/src/event/ngx_event_openssl.c
+++ b/src/event/ngx_event_openssl.c
@@ -1687,20 +1687,24 @@ ngx_ssl_get_cached_session(ngx_ssl_conn_
ngx_int_t rc;
ngx_shm_zone_t *shm_zone;
ngx_slab_pool_t *shpool;
+#if (NGX_DEBUG)
ngx_connection_t *c;
+#endif
ngx_rbtree_node_t *node, *sentinel;
ngx_ssl_session_t *sess;
ngx_ssl_sess_id_t *sess_id;
ngx_ssl_session_cache_t *cache;
u_char buf[NGX_SSL_MAX_SESSION_SIZE];
- c = ngx_ssl_get_connection(ssl_conn);
-
hash = ngx_crc32_short(id, (size_t) len);
*copy = 0;
+#if (NGX_DEBUG)
+ c = ngx_ssl_get_connection(ssl_conn);
+
ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0,
"ssl get session: %08XD:%d", hash, len);
+#endif
shm_zone = SSL_CTX_get_ex_data(SSL_get_SSL_CTX(ssl_conn),
ngx_ssl_session_cache_index);

View File

@ -0,0 +1,24 @@
diff -ur nginx-0.8.54/auto/cc/gcc nginx-0.8.54-patched/auto/cc/gcc
--- nginx-0.8.54/auto/cc/gcc 2011-06-27 19:53:00.205737804 +0800
+++ nginx-0.8.54-patched/auto/cc/gcc 2011-06-27 19:53:13.837741087 +0800
@@ -169,7 +169,7 @@
# stop on warning
-CFLAGS="$CFLAGS -Werror"
+#CFLAGS="$CFLAGS -Werror"
# debug
CFLAGS="$CFLAGS -g"
diff -ur nginx-0.8.54/auto/cc/icc nginx-0.8.54-patched/auto/cc/icc
--- nginx-0.8.54/auto/cc/icc 2011-06-27 19:52:56.370157068 +0800
+++ nginx-0.8.54-patched/auto/cc/icc 2011-06-27 19:53:19.508916811 +0800
@@ -139,7 +139,7 @@
esac
# stop on warning
-CFLAGS="$CFLAGS -Werror"
+#CFLAGS="$CFLAGS -Werror"
# debug
CFLAGS="$CFLAGS -g"

View File

@ -0,0 +1,90 @@
--- nginx-0.8.54/src/http/ngx_http_core_module.c 2010-12-14 18:38:42.000000000 +0800
+++ nginx-0.8.54-patched/src/http/ngx_http_core_module.c 2011-01-30 19:24:34.956354518 +0800
@@ -57,6 +57,8 @@
void *conf);
static char *ngx_http_core_error_page(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
+static char *ngx_http_core_no_error_pages(ngx_conf_t *cf, ngx_command_t *cmd,
+ void *conf);
static char *ngx_http_core_try_files(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_open_file_cache(ngx_conf_t *cf, ngx_command_t *cmd,
@@ -614,6 +616,14 @@
0,
NULL },
+ { ngx_string("no_error_pages"),
+ NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LIF_CONF
+ |NGX_CONF_NOARGS,
+ ngx_http_core_no_error_pages,
+ NGX_HTTP_LOC_CONF_OFFSET,
+ 0,
+ NULL },
+
{ ngx_string("try_files"),
NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_2MORE,
ngx_http_core_try_files,
@@ -3052,7 +3062,6 @@
* clcf->types = NULL;
* clcf->default_type = { 0, NULL };
* clcf->error_log = NULL;
- * clcf->error_pages = NULL;
* clcf->try_files = NULL;
* clcf->client_body_path = NULL;
* clcf->regex = NULL;
@@ -3062,6 +3071,7 @@
* clcf->gzip_proxied = 0;
*/
+ clcf->error_pages = NGX_CONF_UNSET_PTR;
clcf->client_max_body_size = NGX_CONF_UNSET;
clcf->client_body_buffer_size = NGX_CONF_UNSET_SIZE;
clcf->client_body_timeout = NGX_CONF_UNSET_MSEC;
@@ -3250,9 +3260,7 @@
}
}
- if (conf->error_pages == NULL && prev->error_pages) {
- conf->error_pages = prev->error_pages;
- }
+ ngx_conf_merge_ptr_value(conf->error_pages, prev->error_pages, NULL);
ngx_conf_merge_str_value(conf->default_type,
prev->default_type, "text/plain");
@@ -3988,6 +3996,10 @@
ngx_http_compile_complex_value_t ccv;
if (clcf->error_pages == NULL) {
+ return "conflicts with \"no_error_pages\"";
+ }
+
+ if (clcf->error_pages == NGX_CONF_UNSET_PTR) {
clcf->error_pages = ngx_array_create(cf->pool, 4,
sizeof(ngx_http_err_page_t));
if (clcf->error_pages == NULL) {
@@ -4095,6 +4107,25 @@
static char *
+ngx_http_core_no_error_pages(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
+{
+ ngx_http_core_loc_conf_t *clcf = conf;
+
+ if (clcf->error_pages == NULL) {
+ return "is duplicate";
+ }
+
+ if (clcf->error_pages != NGX_CONF_UNSET_PTR) {
+ return "conflicts with \"error_page\"";
+ }
+
+ clcf->error_pages = NULL;
+
+ return NGX_CONF_OK;
+}
+
+
+static char *
ngx_http_core_try_files(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{
ngx_http_core_loc_conf_t *clcf = conf;

View File

@ -0,0 +1,27 @@
# HG changeset patch
# User Maxim Dounin <mdounin@mdounin.ru>
# Date 1309799136 -14400
# Node ID 99e276bba8596bc4df9e638482ee413f4c6bf700
# Parent e7b2f945d55ae44a2295facf9e3336dc4633e5b5
Core: fix body with request_body_in_single_buf.
If there were preread data and request body was big enough first part
of request body was duplicated.
See report here:
http://nginx.org/pipermail/nginx/2011-July/027756.html
diff --git a/src/http/ngx_http_request_body.c b/src/http/ngx_http_request_body.c
--- a/src/http/ngx_http_request_body.c
+++ b/src/http/ngx_http_request_body.c
@@ -372,7 +372,9 @@ ngx_http_do_read_client_request_body(ngx
}
}
- if (r->request_body_in_file_only && rb->bufs->next) {
+ if (rb->bufs->next
+ && (r->request_body_in_file_only || r->request_body_in_single_buf))
+ {
rb->bufs = rb->bufs->next;
}

View File

@ -0,0 +1,17 @@
# HG changeset patch
# User Maxim Dounin <mdounin@mdounin.ru>
# Date 1309776931 -14400
# Node ID e7b2f945d55ae44a2295facf9e3336dc4633e5b5
# Parent 610e909bb9e29766188aa86fae3abe0bd3432940
Core: fix body if it's preread and there are extra data.
--- nginx-0.8.54/src/http/ngx_http_request_body.c 2011-07-05 12:11:21.619264633 +0800
+++ nginx-0.8.54-patched/src/http/ngx_http_request_body.c 2011-07-05 12:14:30.694321554 +0800
@@ -141,6 +141,7 @@
/* the whole request body was pre-read */
+ b->last = b->pos + r->headers_in.content_length_n;
r->header_in->pos += (size_t) r->headers_in.content_length_n;
r->request_length += r->headers_in.content_length_n;

View File

@ -0,0 +1,26 @@
diff -ur lz-nginx-1.0.4/nginx-1.0.4/src/core/nginx.h lz-nginx-1.0.4-patched/nginx-1.0.4/src/core/nginx.h
--- lz-nginx-1.0.4/nginx-1.0.4/src/core/nginx.h 2010-02-12 17:31:01.000000000 +0800
+++ lz-nginx-1.0.4-patched/nginx-1.0.4/src/core/nginx.h 2010-03-30 10:52:13.240702627 +0800
@@ -10,7 +10,7 @@
#define nginx_version 1000004
#define NGINX_VERSION "1.0.4"
-#define NGINX_VER "nginx/" NGINX_VERSION
+#define NGINX_VER "ngx_openresty/" NGINX_VERSION ".unknown"
#define NGINX_VAR "NGINX"
#define NGX_OLDPID_EXT ".oldbin"
Only in lz-nginx-1.0.4-patched/nginx-1.0.4/src/core: nginx.h.orig
Only in lz-nginx-1.0.4-patched/nginx-1.0.4/src/core: nginx.h.rej
diff -ur lz-nginx-1.0.4/nginx-1.0.4/src/http/ngx_http_header_filter_module.c lz-nginx-1.0.4-patched/nginx-1.0.4/src/http/ngx_http_header_filter_module.c
--- lz-nginx-1.0.4/nginx-1.0.4/src/http/ngx_http_header_filter_module.c 2010-03-03 23:14:04.000000000 +0800
+++ lz-nginx-1.0.4-patched/nginx-1.0.4/src/http/ngx_http_header_filter_module.c 2010-03-30 10:52:53.670909405 +0800
@@ -45,7 +45,7 @@
};
-static char ngx_http_server_string[] = "Server: nginx" CRLF;
+static char ngx_http_server_string[] = "Server: ngx_openresty" CRLF;
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;

View File

@ -0,0 +1,40 @@
# HG changeset patch
# User Maxim Dounin <mdounin@mdounin.ru>
# Date 1309187571 -14400
# Node ID 283a416b2235d5383c12a975edc8866f007fb628
# Parent f5fc40783ddcbf4db33859ee2a9bce54cf32c350
Core: protect from subrequest loops.
Without protection subrequest loop results in r->count overflow and
SIGSEGV. Protection was broken in 0.7.25.
Note that this also limits number of parallel subrequests. This
wasn't exactly the case before 0.7.25 as local subrequests were
completed directly.
See here for details:
http://nginx.org/pipermail/nginx-ru/2010-February/032184.html
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -2287,7 +2287,6 @@ ngx_http_subrequest(ngx_http_request_t *
sr->start_sec = tp->sec;
sr->start_msec = tp->msec;
- r->main->subrequests++;
r->main->count++;
*psr = sr;
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -1981,6 +1981,7 @@ ngx_http_finalize_request(ngx_http_reque
if (r == c->data) {
r->main->count--;
+ r->main->subrequests++;
if (!r->logged) {

File diff suppressed because it is too large Load Diff

65
util/configure vendored
View File

@ -5,7 +5,6 @@ use strict;
use warnings;
use File::Spec;
use ExtUtils::MakeMaker ();
sub shell ($@);
sub env ($$);
@ -59,7 +58,7 @@ my @modules = (
[http_set_misc => 'set-misc-nginx-module'],
[http_form_input => 'form-input-nginx-module'],
[http_encrypted_session => 'encrypted-session-nginx-module'],
[http_drizzle => 'drizzle-nginx-module', $on_solaris ? 'disabled' : () ],
[http_drizzle => 'drizzle-nginx-module', 'disabled'],
[http_postgres => 'ngx_postgres', 'disabled'],
[http_lua => 'ngx_lua'],
[http_headers_more => 'headers-more-nginx-module'],
@ -148,6 +147,9 @@ for my $opt (@ARGV) {
} elsif ($opt eq '--with-luajit') {
$resty_opts{luajit} = 1;
} elsif ($opt =~ /^--with-libdrizzle=(.*)/) {
$resty_opts{libdrizzle} = $1;
} elsif ($opt eq '--with-http_ssl_module') {
$resty_opts{http_ssl} = 1;
push @ngx_opts, $opt;
@ -249,15 +251,6 @@ sub build_resty_opts {
$opts->{lua} = 1;
}
if ($on_solaris) {
if ($opts->{http_drizzle}) {
$opts->{libdrizzle} = 1;
}
} elsif (! $opts->{no_http_drizzle}) {
$opts->{libdrizzle} = 1;
}
if ($opts->{no_http_ssl} && $opts->{http_ssl}) {
die "--with-http_ssl_module conflicts with --without-http_ssl_module.\n";
}
@ -267,6 +260,10 @@ sub build_resty_opts {
push @ngx_opts, '--with-http_ssl_module';
}
if (! $opts->{http_drizzle} && $opts->{libdrizzle}) {
die "The http_drizzle_module is not enabled while --with-libdrizzle is specified.\n";
}
if ($platform eq 'linux' && $opts->{luajit} && ! can_run("ldconfig")) {
die "you need to have ldconfig in your PATH env when enabling luajit.\n";
}
@ -291,41 +288,17 @@ sub build_resty_opts {
die "build/ directory already exists\n";
}
shell "cp -r bundle/ build/";
shell "cp -rp bundle/ build/";
cd 'build';
# build 3rd-party C libraries if required
if ($opts->{libdrizzle}) {
my $libdrizzle_src = auto_complete 'libdrizzle';
my $libdrizzle_prefix = "$prefix/libdrizzle";
my $libdrizzle_root = File::Spec->rel2abs("libdrizzle-root");
if (-d $libdrizzle_root) {
shell "rm -rf $libdrizzle_root";
}
mkdir $libdrizzle_root or
die "create create directory libdrizzle-root: $!\n";
cd $libdrizzle_src;
shell "./configure --prefix=$libdrizzle_prefix", $dry_run;
shell "make", $dry_run;
shell "make install DESTDIR=$libdrizzle_root", $dry_run;
push @make_cmds, "cd build/$libdrizzle_src && \$(MAKE)";
push @make_install_cmds, "cd build/$libdrizzle_src && "
. "\$(MAKE) install DESTDIR=\$(DESTDIR)";
env LIBDRIZZLE_LIB => "$libdrizzle_root$libdrizzle_prefix/lib";
env LIBDRIZZLE_INC => "$libdrizzle_root$libdrizzle_prefix/include";
push @ngx_rpaths, "$libdrizzle_prefix/lib";
cd '..';
if (my $drizzle_prefix = $opts->{libdrizzle}) {
my $drizzle_lib = "$drizzle_prefix/lib";
env LIBDRIZZLE_LIB => "$drizzle_prefix/lib";
env LIBDRIZZLE_INC => "$drizzle_prefix/include/libdrizzle-1.0";
push @ngx_rpaths, $drizzle_lib;
}
if ($opts->{luajit}) {
@ -482,6 +455,7 @@ _EOC_
--without-lua51 disable the bundled Lua 5.1 interpreter
--with-luajit enable LuaJIT 2.0
--with-libdrizzle=DIR specify the libdrizzle 1.0 installation prefix
Options directly inherited from nginx
@ -639,12 +613,15 @@ sub can_run {
#warn "can run: @_\n";
my $_cmd = $cmd;
return $_cmd if (-x $_cmd or $_cmd = MM->maybe_command($_cmd));
return $_cmd if -x $_cmd;
for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') {
# FIXME: this is a hack; MSWin32 is not supported anyway
my $path_sep = ':';
for my $dir ((split /$path_sep/, $ENV{PATH}), '.') {
next if $dir eq '';
my $abs = File::Spec->catfile($dir, $_[0]);
return $abs if (-x $abs or $abs = MM->maybe_command($abs));
return $abs if -x $abs;
}
return;

View File

@ -68,7 +68,7 @@ for my $t_file (@t_files) {
close $in;
}
print join("\n", map { " $_" } sort @dirs), "\n";
print join("\n", map { /^LuaJIT/ ? "* ~$_" : "* $_" } sort @dirs), "\n";
sub cd ($) {
my $dir = shift;

View File

@ -32,20 +32,28 @@ sed -i $"s/NGINX_VERSION \".unknown\"/NGINX_VERSION \".$minor_ver\"/" \
patch -p2 < server_header.patch || exit 1
patch -p1 < $root/patches/nginx-$main_ver-redirect_memcpy_overlap.patch || exit 1
#patch -p1 < $root/patches/nginx-$main_ver-redirect_memcpy_overlap.patch || exit 1
patch -p1 < $root/patches/nginx-$main_ver-no_error_pages.patch || exit 1
patch -p1 < $root/patches/nginx-$main_ver-no_Werror.patch || exit 1
patch -p1 < $root/patches/nginx-$main_ver-request_body_preread_fix.patch || exit 1
patch -p1 < $root/patches/nginx-$main_ver-request_body_in_single_buf.patch || exit 1
patch -p1 -l < $root/patches/nginx-$main_ver-subrequest_loop.patch || exit 1
rm -f *.patch || exit 1
cd .. || exit 1
ver=0.36rc3
ver=0.37rc1
$root/util/get-tarball "http://github.com/agentzh/echo-nginx-module/tarball/v$ver" -O echo-nginx-module-$ver.tar.gz || exit 1
tar -xzf echo-nginx-module-$ver.tar.gz
mv agentzh-echo-nginx-module-* echo-nginx-module-$ver
ver=0.03rc2
ver=0.03rc3
$root/util/get-tarball "http://github.com/agentzh/xss-nginx-module/tarball/v$ver" -O xss-nginx-module-$ver.tar.gz || exit 1
tar -xzf xss-nginx-module-$ver.tar.gz || exit 1
mv agentzh-xss-nginx-module-* xss-nginx-module-$ver || exit 1
@ -60,26 +68,26 @@ $root/util/get-tarball "http://github.com/agentzh/set-misc-nginx-module/tarball/
tar -xzf set-misc-nginx-module-$ver.tar.gz || exit 1
mv agentzh-set-misc-nginx-module-* set-misc-nginx-module-$ver || exit 1
ver=0.11rc2
ver=0.11
$root/util/get-tarball "http://github.com/agentzh/rds-json-nginx-module/tarball/v$ver" -O rds-json-nginx-module-$ver.tar.gz || exit 1
tar -xzf rds-json-nginx-module-$ver.tar.gz || exit 1
mv agentzh-rds-json-nginx-module-* rds-json-nginx-module-$ver || exit 1
ver=0.15rc1
ver=0.15
$root/util/get-tarball "http://github.com/agentzh/headers-more-nginx-module/tarball/v$ver" -O headers-more-nginx-module-$ver.tar.gz || exit 1
tar -xzf headers-more-nginx-module-$ver.tar.gz || exit 1
mv agentzh-headers-more-nginx-module-* headers-more-nginx-module-$ver || exit 1
#################################
ver=0.0.15rc10
ver=0.1.1rc1
$root/util/get-tarball "http://github.com/chaoslawful/drizzle-nginx-module/tarball/v$ver" -O drizzle-nginx-module-$ver.tar.gz || exit 1
tar -xzf drizzle-nginx-module-$ver.tar.gz || exit 1
mv chaoslawful-drizzle-nginx-module-* drizzle-nginx-module-$ver || exit 1
#################################
ver=0.1.6rc12
ver=0.2.0
$root/util/get-tarball "http://github.com/chaoslawful/lua-nginx-module/tarball/v$ver" -O lua-nginx-module-$ver.tar.gz || exit 1
tar -xzf lua-nginx-module-$ver.tar.gz || exit 1
mv chaoslawful-lua-nginx-module-* ngx_lua-$ver || exit 1
@ -93,14 +101,14 @@ mv agentzh-array-var-nginx-module-* array-var-nginx-module-$ver || exit 1
#################################
ver=0.12rc1
ver=0.12
$root/util/get-tarball "http://github.com/agentzh/memc-nginx-module/tarball/v$ver" -O memc-nginx-module-$ver.tar.gz || exit 1
tar -xzf memc-nginx-module-$ver.tar.gz || exit 1
mv agentzh-memc-nginx-module-* memc-nginx-module-$ver || exit 1
#################################
ver=0.12rc4
ver=0.12
$root/util/get-tarball "http://github.com/agentzh/srcache-nginx-module/tarball/v$ver" -O srcache-nginx-module-$ver.tar.gz || exit 1
tar -xzf srcache-nginx-module-$ver.tar.gz || exit 1
mv agentzh-srcache-nginx-module-* srcache-nginx-module-$ver || exit 1
@ -150,7 +158,7 @@ mv FRiCKLE-ngx_postgres-* ngx_postgres-$ver || exit 1
#################################
ver=0.07rc2
ver=0.07rc5
$root/util/get-tarball "http://github.com/agentzh/redis2-nginx-module/tarball/v$ver" -O redis2-nginx-module-$ver.tar.gz || exit 1
tar -xzf redis2-nginx-module-$ver.tar.gz || exit 1
mv agentzh-redis2-nginx-module-* redis2-nginx-module-$ver || exit 1
@ -177,23 +185,11 @@ rm lua-makefile-fix.patch
#################################
ver=2.0.0-beta7
ver=2.0.0-beta8
$root/util/get-tarball "http://luajit.org/download/LuaJIT-$ver.tar.gz" -O "LuaJIT-$ver.tar.gz" || exit 1
tar -xzf LuaJIT-$ver.tar.gz || exit 1
patch -p0 < $root/patches/LuaJIT-$ver-symlink_lib.patch || exit 1
#################################
ver=0.8
$root/util/get-tarball "http://launchpad.net/libdrizzle/trunk/0.8/+download/libdrizzle-0.8.tar.gz" -O "libdrizzle-$ver.tar.gz" || exit 1
tar -xzf libdrizzle-$ver.tar.gz || exit 1
$root/util/get-tarball "http://agentzh.org/misc/nginx/libdrizzle-0.8-parsebug_and_mac_fixes.patch" -O "parsebug_and_mac_fixes.patch" || exit 1
patch -p0 < parsebug_and_mac_fixes.patch
rm parsebug_and_mac_fixes.patch || exit 1
#patch -p0 < $root/patches/LuaJIT-$ver-symlink_lib.patch || exit 1
#################################

View File

@ -1,7 +1,7 @@
#!/bin/bash
main_ver=0.8.54
minor_ver=6
main_ver=1.0.4
minor_ver=0
version=$main_ver.$minor_ver
echo $version