Skip to content

Commit

Permalink
updated docs to reflect recent changes.
Browse files Browse the repository at this point in the history
  • Loading branch information
agentzh committed Aug 5, 2012
1 parent e910a86 commit 8e7a350
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 184 deletions.
101 changes: 26 additions & 75 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ Description

# a pool with at most 1024 connections
# and do not distinguish the servers:
keepalive 1024 single;
keepalive 1024;
}

server {
Expand Down Expand Up @@ -452,12 +452,12 @@ Installation
source distribution by hand:

Grab the nginx source code from nginx.org (<http://nginx.org/>), for
example, the version 1.0.8 (see nginx compatibility), and then build the
example, the version 1.2.1 (see nginx compatibility), and then build the
source with this module:

wget 'http://nginx.org/download/nginx-1.0.8.tar.gz'
tar -xzvf nginx-1.0.8.tar.gz
cd nginx-1.0.8/
wget 'http://nginx.org/download/nginx-1.2.1.tar.gz'
tar -xzvf nginx-1.2.1.tar.gz
cd nginx-1.2.1/

# Here we assume you would install you nginx under /opt/nginx/.
./configure --prefix=/opt/nginx \
Expand All @@ -483,6 +483,8 @@ Installation
Compatibility
The following versions of Nginx should work with this module:

* 1.2.x (last tested: 1.2.1)

* 1.1.x (last tested: 1.1.5)

* 1.0.x (last tested: 1.0.10)
Expand All @@ -503,6 +505,15 @@ Compatibility
If you find that any particular version of Nginx above 0.7.46 does not
work with this module, please consider reporting a bug.

Community
English Mailing List
The openresty-en (<https://groups.google.com/group/openresty-en>)
mailing list is for English speakers.

Chinese Mailing List
The openresty (<https://groups.google.com/group/openresty>) mailing list
is for Chinese speakers.

Report Bugs
Although a lot of effort has been put into testing and code tuning,
there must be some serious bugs lurking somewhere in this module. So
Expand All @@ -519,75 +530,11 @@ Source Repository
Available on github at agentzh/memc-nginx-module
(<http://github.com/agentzh/memc-nginx-module>).

ChangeLog
v0.12
* fixed the spots that trigger the unused-but-set-variable warning by
gcc 4.6.

* added more debug information when memcached sends back "invalid"
responses.

* we now document the timeout units properly. it should default to
seconds.

* now we use the 2-clause bsd license.

* added an error message when no upstream backend is found in
"memc_pass $backend".

v0.11
* fixed the zero size buf alert in error.log when $memc_value is set
to empty (""). thanks iframist.

v0.10
* we no longer use the problematic "ngx_strXcmp" macros in our source
because it may cause invalid reads and thus segmentation faults.
thanks Piotr Sikora.

v0.09
* now we copy out "r->request_body->bufs" for our memcached request to
avoid modifying the original request body. Thanks Matthieu Tourne.
Changes
The changes of every release of this module can be obtained from the
ngx_openresty bundle's change logs:

v0.08
* now the memc commands other than get work with subrequests in
memory. Thanks Yao Xinming for reporting it. Using storage memcached
commands in ngx_eval module's eval blocks no longer hang the server.

v0.07
* applied the patch from nginx 0.8.35 that fixed a bug that ngx_eval
may issue the incorrect error message "memcached sent invalid
trailer".

v0.06
* implemented the memc_flags_to_last_modified directive.

* added a new variable named $memc_flags_as_http_time.

v0.05
* removed the "memc_bind" directive since it won't compile with nginx
0.8.31.

v0.04
* to ensure Maxim's ngx_http_upstream_keepalive
(<http://mdounin.ru/hg/ngx_http_upstream_keepalive/>) module caches
our connections even if "u->headers_in->status" is 201 (Created).

* updated docs to make it clear that this module can work with
"upstream" multi-server backends. thanks Bernd Dorn for reporting
it.

v0.03
* fixed a connection leak caused by an extra "r->main->count++"
operation: we should NOT do "r->main->count++" after calling the
"ngx_http_read_client_request_body" function in our content handler.

v0.02
* applied the (minor) optimization trick suggested by Marcus Clyne:
creating our variables and save their indexes at post-config phase
when the memc_pass directive is actually used in the config file.

v0.01
* initial release.
http://openresty.org/#Changes

Test Suite
This module comes with a Perl-driven test suite. The test cases
Expand Down Expand Up @@ -632,7 +579,7 @@ Getting involved
a commit bit to the source repository on GitHub.

Author
agentzh (章亦春) *<agentzh@gmail.com>*
Yichun "agentzh" Zhang (章亦春) *<agentzh@gmail.com>*

This wiki page is also maintained by the author himself, and everybody
is encouraged to improve this page as well.
Expand All @@ -642,7 +589,7 @@ Copyright & License
(HttpMemcachedModule)] in the Nginx 0.8.28 core. This part of code is
copyrighted by Igor Sysoev.

Copyright (c) 2009, 2010, 2011, Zhang "agentzh" Yichun (章亦春)
Copyright (c) 2009-2012, Yichun "agentzh" Zhang (章亦春)
<agentzh@gmail.com>.

This module is licensed under the terms of the BSD license.
Expand Down Expand Up @@ -688,6 +635,10 @@ See Also
* The ngx_srcache (<http://github.com/agentzh/srcache-nginx-module>)
module

* The lua-resty-memcached
(<https://github.com/agentzh/lua-resty-memcached>) library based on
the [[HttpLuaModule]] cosocket API.

* The standard memcached module.

* The [module (HttpEchoModule)] for Nginx module's automated testing.
Expand Down
92 changes: 31 additions & 61 deletions README.markdown
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
<!---
Don't edit this file manually! Instead you should generate it by using:
wiki2markdown.pl doc/HttpMemcModule.wiki
-->

Name
====

Expand Down Expand Up @@ -135,7 +140,7 @@ Here's a sample configuration:

# a pool with at most 1024 connections
# and do not distinguish the servers:
keepalive 1024 single;
keepalive 1024;
}

server {
Expand Down Expand Up @@ -466,12 +471,12 @@ You're recommended to install this module (as well as the Nginx core and many ot
Alternatively, you can compile this module into the standard Nginx source distribution by hand:

Grab the nginx source code from [nginx.org](http://nginx.org/), for example,
the version 1.0.8 (see [nginx compatibility](http://wiki.nginx.org/HttpMemcModule#Compatibility)), and then build the source with this module:
the version 1.2.1 (see [nginx compatibility](http://wiki.nginx.org/HttpMemcModule#Compatibility)), and then build the source with this module:


wget 'http://nginx.org/download/nginx-1.0.8.tar.gz'
tar -xzvf nginx-1.0.8.tar.gz
cd nginx-1.0.8/
wget 'http://nginx.org/download/nginx-1.2.1.tar.gz'
tar -xzvf nginx-1.2.1.tar.gz
cd nginx-1.2.1/

# Here we assume you would install you nginx under /opt/nginx/.
./configure --prefix=/opt/nginx \
Expand All @@ -498,6 +503,7 @@ Compatibility

The following versions of Nginx should work with this module:

* **1.2.x** (last tested: 1.2.1)
* **1.1.x** (last tested: 1.1.5)
* **1.0.x** (last tested: 1.0.10)
* **0.9.x** (last tested: 0.9.4)
Expand All @@ -510,6 +516,19 @@ Earlier versions of Nginx like 0.6.x and 0.5.x will *not* work.

If you find that any particular version of Nginx above 0.7.46 does not work with this module, please consider [reporting a bug](http://wiki.nginx.org/HttpMemcModule#Report_Bugs).

Community
=========

English Mailing List
--------------------

The [openresty-en](https://groups.google.com/group/openresty-en) mailing list is for English speakers.

Chinese Mailing List
--------------------

The [openresty](https://groups.google.com/group/openresty) mailing list is for Chinese speakers.

Report Bugs
===========

Expand All @@ -523,62 +542,12 @@ Source Repository

Available on github at [agentzh/memc-nginx-module](http://github.com/agentzh/memc-nginx-module).

ChangeLog
=========

v0.12
-----
* fixed the spots that trigger the unused-but-set-variable warning by gcc 4.6.
* added more debug information when memcached sends back "invalid" responses.
* we now document the timeout units properly. it should default to seconds.
* now we use the 2-clause bsd license.
* added an error message when no upstream backend is found in "memc_pass $backend".

v0.11
-----
* fixed the zero size buf alert in error.log when $memc_value is set to empty (""). thanks iframist.

v0.10
-----
* we no longer use the problematic `ngx_strXcmp` macros in our source because it may cause invalid reads and thus segmentation faults. thanks Piotr Sikora.

v0.09
-----
* now we copy out `r->request_body->bufs` for our memcached request to avoid modifying the original request body. Thanks Matthieu Tourne.

v0.08
-----
* now the memc commands other than get work with subrequests in memory. Thanks Yao Xinming for reporting it. Using storage memcached commands in ngx_eval module's eval blocks no longer hang the server.

v0.07
-----
* applied the patch from nginx 0.8.35 that fixed a bug that ngx_eval may issue the incorrect error message "memcached sent invalid trailer".

v0.06
-----
* implemented the [memc_flags_to_last_modified](http://wiki.nginx.org/HttpMemcModule#memc_flags_to_last_modified) directive.
* added a new variable named [$memc_flags_as_http_time](http://wiki.nginx.org/HttpMemcModule#.24memc_flags_as_http_time).

v0.05
-----
* removed the `memc_bind` directive since it won't compile with nginx 0.8.31.

v0.04
-----
* to ensure Maxim's [ngx_http_upstream_keepalive](http://mdounin.ru/hg/ngx_http_upstream_keepalive/) module caches our connections even if `u->headers_in->status` is 201 (Created).
* updated docs to make it clear that this module can work with "upstream" multi-server backends. thanks Bernd Dorn for reporting it.

v0.03
-----
* fixed a connection leak caused by an extra `r->main->count++` operation: we should NOT do `r->main->count++` after calling the `ngx_http_read_client_request_body` function in our content handler.
Changes
=======

v0.02
-----
* applied the (minor) optimization trick suggested by Marcus Clyne: creating our variables and save their indexes at post-config phase when the [memc_pass](http://wiki.nginx.org/HttpMemcModule#memc_pass) directive is actually used in the config file.
The changes of every release of this module can be obtained from the ngx_openresty bundle's change logs:

v0.01
-----
* initial release.
<http://openresty.org/#Changes>

Test Suite
==========
Expand Down Expand Up @@ -616,7 +585,7 @@ You'll be very welcomed to submit patches to the [author](http://wiki.nginx.org/
Author
======

agentzh (章亦春) *&lt;agentzh@gmail.com&gt;*
Yichun "agentzh" Zhang (章亦春) *&lt;agentzh@gmail.com&gt;*

This wiki page is also maintained by the author himself, and everybody is encouraged to improve this page as well.

Expand All @@ -625,7 +594,7 @@ Copyright & License

The code base is borrowed directly from the standard [memcached module](http://wiki.nginx.org/HttpMemcachedModule) in the Nginx 0.8.28 core. This part of code is copyrighted by Igor Sysoev.

Copyright (c) 2009, 2010, 2011, Zhang "agentzh" Yichun (章亦春) <agentzh@gmail.com>.
Copyright (c) 2009-2012, Yichun "agentzh" Zhang (章亦春) <agentzh@gmail.com>.

This module is licensed under the terms of the BSD license.

Expand Down Expand Up @@ -655,6 +624,7 @@ See Also
* My slides demonstrating various ngx_memc usage: <http://agentzh.org/misc/slides/nginx-conf-scripting/nginx-conf-scripting.html#34> (use the arrow or pageup/pagedown keys on the keyboard to swith pages)
* The latest [memcached TCP protocol](http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt).
* The [ngx_srcache](http://github.com/agentzh/srcache-nginx-module) module
* The [lua-resty-memcached](https://github.com/agentzh/lua-resty-memcached) library based on the [HttpLuaModule](http://wiki.nginx.org/HttpLuaModule) cosocket API.
* The standard [memcached](http://wiki.nginx.org/HttpMemcachedModule) module.
* The [echo module](http://wiki.nginx.org/HttpEchoModule) for Nginx module's automated testing.
* The standard [headers](http://wiki.nginx.org/HttpHeadersModule) module and the 3rd-parth [headers-more](http://wiki.nginx.org/HttpHeadersMoreModule) module.
Expand Down
Loading

0 comments on commit 8e7a350

Please sign in to comment.