Echo#
该模块添加了 要使用该模块,必须在 让我们发出几个请求来演示模块的功能。 字符串 "hello" 和 "world" 将以 2.5 秒的间隔出现。 详细文档和源代码可在以下地址获取:
openresty/echo-nginx-module.echo
、sleep
、time
、exec
和其他 shell 风格的函数。加载模块#
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 "总共花费 $echo_timer_elapsed 秒。";
}
location /subr_async {
echo_reset_timer;
echo_location_async /sub1;
echo_location_async /sub2;
echo "总共花费 $echo_timer_elapsed 秒。";
}
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
$ curl localhost/dup
------ END ------
$ time curl localhost/subr
hello
world
总共花费 3.004 秒。
real 0m3.027s
user 0m0.015s
sys 0m0.007s
$ time curl localhost/subr_async
hello
world
总共花费 0.000 秒。
real 0m2.023s
user 0m0.001s
sys 0m0.020s
附加信息#