3rdPartyModules
(鈫鈥Tools for module developers) |
m (鈫鈥Known modules) |
||
(11 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
= Third party modules = | = Third party modules = | ||
鈭 | These modules are not officially supported. Nevertheless many of them may prove useful to many people. | + | These modules are not officially supported and may not be compatible across versions of Nginx. Nevertheless many of them may prove useful to many people. Enjoy at your own risk. |
== Compiling third party modules == | == Compiling third party modules == | ||
Line 74: | Line 74: | ||
| [http://anomalizer.net/statistically-incorrect Arvind Jayaprakash] | | [http://anomalizer.net/statistically-incorrect Arvind Jayaprakash] | ||
| [http://github.com/anomalizer/ngx_aws_auth/ Download] | | [http://github.com/anomalizer/ngx_aws_auth/ Download] | ||
+ | |- | ||
+ | | [https://github.com/taobao/nginx-backtrace Backtrace] | ||
+ | | A nginx module to dump backtrace case a worker process exits abnormally. | ||
+ | | [http://tengine.taobao.org/ Tengine] | ||
+ | | [https://github.com/taobao/nginx-backtrace Download] | ||
|- | |- | ||
| [http://labs.frickle.com/nginx_ngx_cache_purge/ Cache Purge] | | [http://labs.frickle.com/nginx_ngx_cache_purge/ Cache Purge] | ||
Line 84: | Line 89: | ||
| [http://agentzh.org/ agentzh] | | [http://agentzh.org/ agentzh] | ||
| [http://github.com/agentzh/chunkin-nginx-module/tags Download] | | [http://github.com/agentzh/chunkin-nginx-module/tags Download] | ||
+ | |- | ||
+ | | [https://github.com/taobao/nginx-http-concat Concat] | ||
+ | | This module can concatenate files in a given context: CSS and JS files usually | ||
+ | | [http://tengine.taobao.org/ Tengine] | ||
+ | | [https://github.com/taobao/nginx-http-concat/tags Download] | ||
|- | |- | ||
| [[HttpCircleGifModule|Circle GIF]] | | [[HttpCircleGifModule|Circle GIF]] | ||
Line 116: | Line 126: | ||
|- | |- | ||
| [https://github.com/bpaquet/ngx_http_enhanced_memcached_module Enhanced Memcached] | | [https://github.com/bpaquet/ngx_http_enhanced_memcached_module Enhanced Memcached] | ||
鈭 | | Repackaging of the standard memcached module to add features : custom http headers, hash keys, store entries in memcached with post http request, flush, key namespace | + | | Repackaging of the standard memcached module to add features : custom http headers, hash keys, store entries in memcached with post http request, flush, key namespace, send 304 when no modification |
| [https://github.com/bpaquet Bertrand Paquet] | | [https://github.com/bpaquet Bertrand Paquet] | ||
| [https://github.com/bpaquet/ngx_http_enhanced_memcached_module Download] | | [https://github.com/bpaquet/ngx_http_enhanced_memcached_module Download] | ||
Line 153: | Line 163: | ||
| [http://vimedia.org/ Calio], [http://agentzh.org agentzh] | | [http://vimedia.org/ Calio], [http://agentzh.org agentzh] | ||
| [http://github.com/calio/form-input-nginx-module/tags Download] | | [http://github.com/calio/form-input-nginx-module/tags Download] | ||
+ | |- | ||
+ | | [https://github.com/taobao/nginx-http-footer-filter Foot filter] | ||
+ | | This module implements a body filter that adds a given string to the page footer. | ||
+ | | [http://tengine.taobao.org/ Tengine] | ||
+ | | [https://github.com/taobao/nginx-http-footer-filter/tags Download] | ||
|- | |- | ||
| [[Http3rdPartyGeoIPModule|GeoIP]] | | [[Http3rdPartyGeoIPModule|GeoIP]] | ||
Line 233: | Line 248: | ||
| Valery Kholodkov | | Valery Kholodkov | ||
| [http://www.grid.net.ru/nginx/download/nginx_mogilefs_module-1.0.2.tar.gz Download] | | [http://www.grid.net.ru/nginx/download/nginx_mogilefs_module-1.0.2.tar.gz Download] | ||
+ | |- | ||
+ | | [https://github.com/simpl/ngx_mongo Mongo] | ||
+ | | Upstream module that allows nginx to communicate directly with [http://www.mongodb.org/ MongoDB] database. | ||
+ | | [http://www.frickle.com/ FRiCKLE] & [http://simpl.it/ Simpl.it] | ||
+ | | [https://github.com/simpl/ngx_mongo/downloads Download] | ||
|- | |- | ||
| [[MP4StreamingLite|MP4 Streaming Lite]] | | [[MP4StreamingLite|MP4 Streaming Lite]] | ||
Line 265: | Line 285: | ||
|- | |- | ||
| [http://labs.frickle.com/nginx_ngx_postgres/ Postgres] | | [http://labs.frickle.com/nginx_ngx_postgres/ Postgres] | ||
鈭 | | Upstream module that allows nginx to communicate directly with PostgreSQL database. | + | | Upstream module that allows nginx to communicate directly with [http://www.postgresql.org/ PostgreSQL] database. |
| [http://www.frickle.com/ FRiCKLE] | | [http://www.frickle.com/ FRiCKLE] | ||
| [http://labs.frickle.com/nginx_ngx_postgres/ Download] | | [http://labs.frickle.com/nginx_ngx_postgres/ Download] | ||
Line 328: | Line 348: | ||
| Neil McKee | | Neil McKee | ||
| [http://code.google.com/p/nginx-sflow-module/downloads/list Download] | | [http://code.google.com/p/nginx-sflow-module/downloads/list Download] | ||
+ | |- | ||
+ | | [https://github.com/taobao/nginx-http-slice Slice] | ||
+ | | Nginx module for serving a file in slices (reverse byte-range). | ||
+ | | [http://tengine.taobao.org Tengine] | ||
+ | | [https://github.com/taobao/nginx-http-slice/tags Download] | ||
|- | |- | ||
| [http://labs.frickle.com/nginx_ngx_slowfs_cache/ SlowFS Cache] | | [http://labs.frickle.com/nginx_ngx_slowfs_cache/ SlowFS Cache] | ||
Line 403: | Line 428: | ||
| [http://mdounin.ru Maxim Dounin] | | [http://mdounin.ru Maxim Dounin] | ||
| [http://mdounin.ru/hg/ngx_http_upstream_keepalive/ Download] | | [http://mdounin.ru/hg/ngx_http_upstream_keepalive/ Download] | ||
+ | |- | ||
+ | | [https://github.com/taobao/nginx-http-user-agent User-agent] | ||
+ | | A more powerful module than the Native [http://wiki.nginx.org/HttpBrowserModule BrowserModule] | ||
+ | | [http://tengine.taobao.org/ Tengine] | ||
+ | | [https://github.com/taobao/nginx-http-user-agent Download] | ||
|- | |- | ||
| [https://github.com/wandenberg/nginx-video-thumbextractor-module Video Thumb Extractor] | | [https://github.com/wandenberg/nginx-video-thumbextractor-module Video Thumb Extractor] | ||
Line 431: | Line 461: | ||
|} | |} | ||
鈭 | + | = Tools for module developers = | |
{| class="modules-index-table" | {| class="modules-index-table" | ||
! Name | ! Name | ||
Line 454: | Line 484: | ||
As with third party modules, these patches are not officially supported. Your mileage may vary. | As with third party modules, these patches are not officially supported. Your mileage may vary. | ||
鈭 | {| | + | {| class="modules-index-table" |
! Description | ! Description | ||
! Author | ! Author |
Latest revision as of 13:25, 5 July 2012
Contents |
[edit] Third party modules
These modules are not officially supported and may not be compatible across versions of Nginx. Nevertheless many of them may prove useful to many people. Enjoy at your own risk.
[edit] Compiling third party modules
Modules are typically added by compiling them along with the Nginx source.
From the Nginx source directory, type:
./configure --add-module=/path/to/module1/source \ --add-module=/path/to/module2/source
You can use as many --add-module
arguments as needed.
Be aware that some modules may require additional libraries to be installed on your system.
[edit] Writing your own module
Evan Miller has written the definitive guide to Nginx module development. But some parts of it are a little out of date. You've been warned.
A github search turned up the Nginx Development Kit. It seems to be more up to date.
See also the tools at the bottom of this page.
[edit] Known modules
Name | Description | Author | Link |
---|---|---|---|
Accept Language | Parses the Accept-Language header and gives the most suitable locale from a list of supported locales.
|
Guillaume Maury | Download |
Access Key | Denies access unless the request URL contains an access key. | Mykola Grechukh | Download |
AFCGI | Asynchronous/multiplexing FastCGI for nginx (incl. ref server implementation) | rsms | Download |
Array Var | Add support for array variables to nginx config files | agentzh | Download |
Auth Digest | HTTP Digest Authentication. | Christian Swinehart | Download |
Auth PAM | HTTP Basic Authentication using PAM. | Sergio Talens-Oliag | Download |
Auth Request | Allows authorization based on subrequest result. | Maxim Dounin | Download |
Auto Lib | Reuse pre-compiled/installed versions of OpenSSL, PCRE and Zlib without re-compiling them each time Nginx is compiled | Marcus Clyne | Download |
AWS auth | Generate security headers for GET requests to Amazon S3. | Arvind Jayaprakash | Download |
Backtrace | A nginx module to dump backtrace case a worker process exits abnormally. | Tengine | Download |
Cache Purge | Module adding ability to purge content from FastCGI, proxy, and uWSGI caches. | FRiCKLE | Download |
Chunkin | HTTP 1.1 chunked-encoding request body support for Nginx. | agentzh | Download |
Concat | This module can concatenate files in a given context: CSS and JS files usually | Tengine | Download |
Circle GIF | Generates simple circle images with the colors and size specified in the URL. | Evan Miller | Download |
CT++ | Embeds CT++ (or CTPP2) VM, the execution part of a high-performance template engine system. | Valentin V. Bartenev | Download |
Development Kit | An extension to the core functionality of Nginx which can be used as a basis for other modules | Marcus Clyne | Download |
Drizzle | Make nginx talk directly to mysql and drizzle by libdrizzle. | chaoslawful, agentzh, Piotr Sikora | Download |
Dynamic etags | Nginx module for etags on dynamic content | kali | Download |
Echo | Brings "echo", "sleep", "time", "exec", and more shell-style goodies to Nginx config file. | agentzh | Download |
Enhanced Memcached | Repackaging of the standard memcached module to add features : custom http headers, hash keys, store entries in memcached with post http request, flush, key namespace, send 304 when no modification | Bertrand Paquet | Download |
Encrypted Session | encrypt and decrypt nginx variable values, can be used for light-weight session-based authentication | agentzh | Download |
Eval | A module for evaluating memcached or proxy response into variable. | vkholodkov | Download |
Eval (agentzh's fork) | Enhanced ngx_eval that can capture arbitrary subrequest's responses into nginx variables (can even with output filters enabled) | agentzh | Download |
Expressz | First of the Expressz lineup modules, Off-loading image and file/stream compression to (a) GPU(s). | Jason Giedymin at AcronymLabs | |
EY Balancer | Adds a request queue to Nginx that allows the limiting of concurrent requests passed to the upstream. | Ry Dahl | Download |
Fancy Indexes | Like the built-in autoindex module, but fancier. | Adrian Perez de Castro | Download |
Form Input | This module reads HTTP POST request body and parse the arguments into nginx variables. | Calio, agentzh | Download |
Foot filter | This module implements a body filter that adds a given string to the page footer. | Tengine | Download |
GeoIP | Country code lookups via the MaxMind GeoIP API. | SPIL GAMES | File:Nginx-geoip-0.2.tar.gz |
GridFS | Nginx module for serving files from MongoDB's GridFS. | mdirolf | Download |
Headers More | Set and clear input and output headers...more than "add"! | agentzh | Download |
HTTP Healthcheck | Health check HTTP servers inside an upstream so you don't forward requests to bad hosts | Jack Lindamood | |
HTTP Accounting | Realtime netflow and status code monitor solution for nginx, need less memory and cpu than realtime log analyzing. Useful for http traffic accounting based on nginx config logic ( per-location-traffic or per-server-traffic ). | Liu Lantao | Download |
HTTP Push | Turn Nginx into an adept long-polling HTTP Push (Comet) server. | Leo Ponomarev | Download |
HTTP Push Stream | Turn Nginx into an adept stream HTTP Push (Comet) server. | Wandenberg Peixoto | Download |
HTTP Redis | Redis support. | Sergey A. Osokin <osa@FreeBSD.ORG.ru> | Download |
JavaScript | Embedding SpiderMonkey. Full port of Perl module and more. | Peter Leonov | Download |
Iconv | A character encoding conversion nginx module using libiconv. | Calio, agentzh | Download |
Log Request Speed | Log the time it took to process each request. | Mauro Stettler | |
Lower Upper Case | Simple module to upper-/lowercase a string in the Nginx config | Mauro Stettler | Download |
Lua | Embed the power of Lua into nginx | chaoslawful, agentzh | Download |
Luafile | Embed the power of Lua into nginx very easy. | alacner | Download |
Memc | An extended version of the standard memcached module that supports set, add, delete, and many more memcached commands. | agentzh | Download |
Mogilefs | Implements a MogileFS client, provides a replace to the Perlbal reverse proxy of the original MogileFS. | Valery Kholodkov | Download |
Mongo | Upstream module that allows nginx to communicate directly with MongoDB database. | FRiCKLE & Simpl.it | Download |
MP4 Streaming Lite | Will seek to a certain time within H.264/MP4 files when provided with a "start" parameter in the URL. | Jiang Hong | Download |
Naxsi | Web Application Firewall for nginx. | Thibault Koechlin | Download |
Notice | Serve static file to POST requests. | Keith Rarick | Download |
OwnerMatch | This module provides a simple file owner-based access control. | Heiher | Download |
PHP-Memache Standard Hash | This is a loadbalancer that imitates the PHP-Memcache standard hash's behaviour | Mauro Stettler | Download |
PHP Session Parser | Extract values that are stored in a serialized PHP session | Mauro Stettler | Download |
Postgres | Upstream module that allows nginx to communicate directly with PostgreSQL database. | FRiCKLE | Download |
Pubcookie | Adds Pubcookie-based cross-site authentication method to Nginx. | Vitki | Download |
RDS CSV | Help ngx_drizzle, ngx_postgres, and others emit Comma-Separated Values (CSV). | agentzh | Download |
RDS JSON | Help ngx_drizzle, ngx_postgres, and others emit JSON data. | agentzh | Download |
Redis2 | Upstream module for the full Redis 2.0 protocol | agentzh | Download |
Roboo | HTTP Robot mitigator utilizing advanced non-interactive HTTP challenge/response mechanisms | Yuri Gushin, Alex Behar | Download |
RRD Graph | This module provides an HTTP interface to RRDtool's graphing facilities. | Evan Miller | Download |
Secure Download | Create expiring links. | Mauro Stettler, Szymon Modzelewski | Download |
Set CConv | Conversion between Simplified Chinese and Traditional Chinese at rewrite phase | Liseen Wan | Download |
Set Hash | Set a variable to a variety of hash functions (upper/lowercase), including MD5, SHA1 and Murmurhash 2 | Marcus Clyne | Download |
Set Lang | Set a variable to indicate the language based on a variety of sources including cookies, GET/POST variables, Accept Language header and more | Marcus Clyne | Download |
Set Misc | Various set_xxx directives added to nginx's rewrite module (md5/sha1, sql/json quoting, and many more) | agentzh, Calio, shrimp | Download |
sFlow | Operational performance monitoring with standard sFlow protocol | Neil McKee | Download |
Slice | Nginx module for serving a file in slices (reverse byte-range). | Tengine | Download |
SlowFS Cache | Module adding ability to cache static files. | FRiCKLE | Download |
SPNEGO | Support for SPNEGO/gssapi in nginx. | mike503/muhgatus | Download |
SR Cache | Transparent subrequest-based caching layout for arbitrary nginx locations (can be used with ngx_memc + memcached!) | agentzh | Download |
Static etags | Nginx doesn't generate etags for static content. I'd like it to. Let's see if I can remember some C from college. | mikewest | Download |
Statsd | Adds the ability for Nginx to interacting with statsd. | zebrafishlabs | Download |
Sticky upstream | A nginx module to add an upstream server persistance using cookies. | J茅r么me Loyet | Download |
Strip | Whitespace remover. | Evan Miller | File:Mod strip-0.1.tar.gz |
Substitutions | A filter module which can do both regular expression and fixed string substitutions on response bodies. | Weibin Yao | Download |
Supervisord | Module providing nginx with API to communicate with supervisord and manage (start/stop) backends on-demand. | FRiCKLE | Download |
Upload | Parses multipart/form-data allowing arbitrary handling of uploaded files.
|
Valery Kholodkov | Download |
Upload Progress | Tracks and reports upload progress. | Brice Figureau | Download |
Upstream Consistent Hash | Select backend based on Consistent hash ring. | Mauro Stettler | Download |
Upstream Fair Balancer | Sends an incoming request to the least-busy backend server, rather than distributing requests round-robin. | Gregory Nosek | Download |
Upstream Hash | Provides simple upstream load distribution by hashing a configurable variable. | Evan Miller | Download |
Upstream Keepalive | Provides keep-alive connections to memcached upstreams. | Maxim Dounin | Download |
User-agent | A more powerful module than the Native BrowserModule | Tengine | Download |
Video Thumb Extractor | Nginx module to extract thumbs from a video file. | Wandenberg Peixoto | Download |
WSGI | WSGI implementation for Nginx. Allows easy deployment of Python applications. | Manlio Perillo | Download |
XSS | Native support for cross-site scripting (XSS) in an nginx. | agentzh | Download |
Zip | Assemble ZIP archives on the fly. | Evan Miller | Download |
Extended status module | Extended status module for nginx | 斓滌榿靹(Choi Youngseok), 鏉庨噾铏(Li Jinhu) | Download |
[edit] Tools for module developers
Name | Description | Author | Link |
---|---|---|---|
Nginx Auto Lib Core | Reusable file for module developers to include with their modules to easily and consistently handle including external libraries; used in the Auto Lib module and included in the Nginx Development Kit | Marcus Clyne | Download |
Nginx Development Kit | An extension to the core functionality of Nginx which can be used as a basis for other modules | Marcus Clyne | Download |
[edit] Third party patches
These patches must be applied to the Nginx source code tree. There's no guarantee these patches will apply to a particular version of Nginx.
As with third party modules, these patches are not officially supported. Your mileage may vary.
Description | Author | Link |
---|---|---|
Log to syslog. | Marlon de Boer | Patch for version 0.8.49 with 'sh is not bash' fix | Syslog Patch for Nginx 0.8.54+ |
Disable nginx's memory pool to help valgrind and other tools (for nginx C developers only) | shrimp, agentzh | Git repository for the patch |
SSL Session tickets distributed via memcached | Matthew Palmer | Git repository for changes |