前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx安装Nginx-echo模块

Nginx安装Nginx-echo模块

作者头像
星哥玩云
发布2022-07-13 13:22:21
1K0
发布2022-07-13 13:22:21
举报
文章被收录于专栏:开源部署

Nginx-echo可以在Nginx中用来输出一些信息,是在测试排错过程中一个比较好的工具。它也可以做到把来自不同链接地址的信息进行一个汇总输出。总之能用起来可以给开发人员带来挺大帮助的。下面看看我们如何去安装使用它。

1.下载Nginx-echo

cd /usr/local/nginx-1.12.2/ wget https://github.com/openresty/echo-nginx-module/archive/v0.60.tar.gz

2.解压下载来的文件

tar zxvf v0.60.tar.gz

3.查看一下之前安装的模块

/usr/local/nginx/sbin/nginx -V

4.进入以前下载过来的Nginx安装包目录下配置

cd /usr/local/nginx-1.12.2/ ./configure --add-module=/usr/local/nginx-1.12.2/echo-nginx-module-0.61 --add-module=/usr/local/nginx-1.12.2/ngx_image_thumb-master

5.编译安装,如果是升级可以使用make upgrade

make && make install

6.使用echo,以下内容为官方的案例,加了一些自己的理解

#简单输出,看别人日志地址是/hello,我这里测试后不知道为什么一直访问不到,所以加上/ location /hello/ {     echo "hello, world!"; }

#$echo_timer_elapsed计时,通过echo_reset_timer执行后开始计算 location /timed_hello/ {     echo_reset_timer;     echo hello world;     echo "'hello world' takes about $echo_timer_elapsed sec.";     echo hiya igor;     echo "'hiya igor' takes about $echo_timer_elapsed sec."; }

#echo_sleep可以等待2.5s后再输出 location /echo_with_sleep/ {     echo hello;     echo_flush;  # ensure the client can see previous output immediately     echo_sleep  2.5;  # in sec     echo world; }

#在proxy_pass这个地址获得的源代码前后加上指定的内容 location /echo/ {       echo_before_body hello;       echo_before_body world;       proxy_pass $scheme://127.0.0.1:$server_port$request_uri/more;       echo_after_body hiya;       echo_after_body igor; } #echo_location_async可以异步去访问其他地址,不影响当前函数执行,$echo_timer_elapsed最后输出的值为0 location /main/ {       echo_reset_timer;       # subrequests in parallel       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; }

#同步执行 location /main/ {       echo_reset_timer;       # subrequests in series (chained by CPS)       echo_location /sub1/;       echo_location /sub2/;       echo "took $echo_timer_elapsed sec for total."; } location /sub1/ {       echo_sleep 2;       echo hello; } location /sub2/ {       echo_sleep 1;       echo world; }

#echo_duplicate 3 "--" 意思是重复3次输出"--" location /dup/ {     echo_duplicate 3 "--";     echo_duplicate 1 " END ";     echo_duplicate 3 "--";     echo; }

#输出客户端请求的信息 location /echoback/ {     echo_duplicate 1 $echo_client_request_headers;     echo "\r";     echo_read_request_body;     echo_request_body; }

#输出querystring、method、body、content等信息 location /multi {     echo_subrequest_async POST '/sub' -q 'foo=Foo' -b 'hi';     echo_subrequest_async PUT '/sub' -q 'bar=Bar' -b 'hello'; } location /sub {     echo "querystring: $query_string";     echo "method: $echo_request_method";     echo "body: $echo_request_body";     echo "content length: $http_content_length";     echo '///'; }

#可以将多个JS合并到一个URL地址输出 # GET /merge?/foo.js&/bar/blah.js&/yui/baz.js will merge the .js resources together location /merge {     default_type 'text/javascript';     echo_foreach_split '&' $query_string;     echo "/* JS File $echo_it */";     echo_location_async $echo_it;     echo;     echo_end; }

#如果地址为/if/?val=abcd,则输出hit #参数名为val,参数值以a开头 location /if/ {     set $res miss;     if ($arg_val ~* '^a') {         set $res hit;         echo $res;     }     echo $res; }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档