Echo#
Модуль добавляет Для работы с модулем необходимо загрузить его в контексте Выполним несколько запросов для демонстрации работы модуля. Строки "hello" и "world" появятся с интервалом 2,5 секунды. Подробная документация и исходный код доступны по ссылке:
openresty/echo-nginx-module.echo
, sleep
, time
, exec
и
другие функции в стиле командной оболочки.Загрузка модуля#
main{}
:load_module modules/ngx_http_echo_module.so;
Пример конфигурации#
server {
listen 80;
server_name localhost;
location /echo {
echo_before_body 'These lines are inserted';
echo_before_body 'by the echo_before_body directive';
echo_after_body 'These lines are added';
echo_after_body 'by the echo_after_body directive';
proxy_pass $scheme://127.0.0.1:$server_port$request_uri/more;
}
location /echo/more {
set $val 'value';
echo '======== Start backend answer =========';
echo 'Backend answer body';
echo "val is set on $val";
echo '======== End backend answer ===========';
}
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_asynk {
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
These lines are inserted
by the echo_before_body directive
======== Start backend answer =========
Backend answer body
val is set on value
======== End backend answer ==========
These lines are added
by the echo_after_body directive
$ curl localhost/echo_with_sleep
hello
world
$ 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_asynk
hello
world
took 0.000 sec for total.
real 0m2.023s
user 0m0.001s
sys 0m0.020s
Дополнительная информация#