From 110dc6e209194de15dbf42182f8ae69f7bae830d Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Thu, 5 Feb 2009 22:36:08 +0100 Subject: [PATCH] http://wiki.codemongers.com/NginxHttpUpstreamRequestHashModule --- .../NginxHttpUpstreamRequestHashModule,html | 173 ++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 nginx_upstream_hash/NginxHttpUpstreamRequestHashModule,html diff --git a/nginx_upstream_hash/NginxHttpUpstreamRequestHashModule,html b/nginx_upstream_hash/NginxHttpUpstreamRequestHashModule,html new file mode 100644 index 0000000..8d2c3f9 --- /dev/null +++ b/nginx_upstream_hash/NginxHttpUpstreamRequestHashModule,html @@ -0,0 +1,173 @@ + + + + + + +NginxHttpUpstreamRequestHashModule - Nginx Wiki + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

+

ngx_http_upstream_hash_module

+

This module is not distributed with the Nginx source. Installation instructions are below.

The upstream_hash module provides simple upstream load distribution by hashing a configurable variable (e.g., the request URI, incoming HTTP headers, or some combination). Example usage:

upstream backend {
+    server server1;
+    server server2;
+    hash   $request_uri;
+}
+

Here, Nginx will choose server1 or server2 by hashing the request URI ($request_uri).

+

Directives

+

+

hash

+

syntax hash $variable

context upstream

Enables upstream hashing of $variable.

When present, the "server" directives cannot take any arguments ("weight", "max_fails", etc.).

+

hash_again

+

syntax hash_again number

default 0

context upstream

Number of times to rehash the value and choose a different server if the backend connection fails. Increase this number to provide high availability.

+

Installation

+

This module is not distributed with the Nginx source. You can download the request_hash module here: nginx_upstream_hash-0.3.tar.gz

After extracting, you will need to patch the latest Nginx source (0.7.11 as of this writing). Run patch like this:

    cd nginx-0.7.11
+    patch -p0 < /path/to/upstream/hash/directory/nginx.patch
+

Then add the following option to your Nginx ./configure command:

    --add-module=path/to/upstream/hash/directory
+

Then "make" and "make install" as usual.

+

The hash algorithm

+

As of 0.3, the hash algorithm and the failover algorithm use a CRC-32 computation compatible with PECL Memcache.

+

Changes

+
  • * 0.3: Feature: PECL Memcache compatibility. Change: Removed "hash_method" directive.

+

Bugs

+

Send bug reports to Evan Miller.

+

NginxHttpUpstreamRequestHashModule (last edited 2008-08-25 02:18:43 by Emiller)

+ +
+
+ + + + + -- 2.20.1