Skip to content
An Nginx module for bringing the power of "echo", "sleep", "time" and more to Nginx's config file
C Perl Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



An nginx module for bringing the power of sh's "echo" command to Nginx's config file.


Grab the nginx source code from , for example,
the version 0.8.17 and then build the source with this module:

    $ wget ''
    $ tar -xzvf nginx-0.8.17.tar.gz
    $ cd nginx-0.8.17/
    $ ./configure --prefix /opt/nginx \


This is a sample configuration snippet in your nginx.conf file:

    http {
        server {

            default_type text/plain;

            location /hello {
                echo 'hello, world';
                echo hello world;

            location /echoback {
                echo "------------------------";

            location /server {
                echo "Server name: $server_name";
                echo "Server address: $server_addr";
                echo "Server port: $server_port";
                echo "Server protocol: $server_protocol";

As you can see, the only directive provided by this module is

After starting the nginx server, one can query it these ways:

    $ curl 'http://localhost/hello'
    hello, world
    hello world

    $ curl 'http://localhost/echoback'
    GET /echoback HTTP/1.1
    User-Agent: curl/7.18.2 (i486-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.8g zlib/ libidn/1.10
    Host: localhost
    Accept: */*

    $ curl 'http://localhost/server'
    Server name: localhost
    Server address:
    Server port: 80
    Server protocol: HTTP/1.1

Contact the author by agentzh at gmail dot com whenever you have
any questions.

Something went wrong with that request. Please try again.