Echo#

该模块添加了 echosleeptimeexec 以及其他 shell 风格的函数。

安装#

安装 该模块,请使用以下软件包之一:

  • Angie:angie-module-echo

  • Angie PRO:angie-pro-module-echo

加载模块#

要使用该模块,必须在 main{} 上下文中加载它:

load_module modules/ngx_http_echo_module.so;

配置示例#

server {
    listen       80;
    server_name  localhost;

    location /echo {
        echo_before_body '这些行是由';
        echo_before_body 'echo_before_body 指令插入的';
        echo_after_body '这些行是由';
        echo_after_body 'echo_after_body 指令添加的';
        proxy_pass $scheme://127.0.0.1:$server_port$request_uri/more;
    }

    location /echo/more {
        set $val 'value';
        echo '======== 后端响应开始 =========';
        echo '后端响应主体';
        echo "val 被设置为 $val";
        echo '======== 后端响应结束 ===========';
    }

    location /echo_with_sleep {
        echo hello;
        echo_flush;
        echo_sleep   2.5;
        echo world;
    }

    location /dup {
        echo_duplicate 3 "--";
        echo_duplicate 1 " END ";
        echo_duplicate 3 "--";
        echo;
    }

    location /subr {
        echo_reset_timer;
        echo_location /sub1;
        echo_location /sub2;
        echo "took $echo_timer_elapsed sec for total.";
    }

    location /subr_async {
        echo_reset_timer;
        echo_location_async /sub1;
        echo_location_async /sub2;
        echo "took $echo_timer_elapsed sec for total.";
    }

    location /sub1 {
        echo_sleep 2;
        echo hello;
    }

    location /sub2 {
        echo_sleep 1;
        echo world;
    }
}

演示#

让我们发起几个请求来演示该模块的功能。

$ curl localhost/echo

  这些行是由
  echo_before_body 指令插入的
  ======== 后端响应开始 =========
  后端响应主体
  val 被设置为 value
  ======== 后端响应结束 ===========
  这些行是由
  echo_after_body 指令添加的
$ curl localhost/echo_with_sleep

  hello
  world

字符串 "hello" 和 "world" 将以 2.5 秒的间隔出现。

$ curl localhost/dup
------ END ------
$ time curl localhost/subr

  hello
  world
  took 3.004 sec for total.

  real    0m3.027s
  user    0m0.015s
  sys     0m0.007s
$ time curl localhost/subr_async

  hello
  world
  took 0.000 sec for total.

  real    0m2.023s
  user    0m0.001s
  sys     0m0.020s

附加信息#

详细文档和源代码可在以下位置获取: openresty/echo-nginx-module.