0%

nginx安装echo模块

Nginx的模块从结构上分为核心模块、基础模块和第三方模块:核心模块包含HTTP模块、EVENT模块和MAIL模块等;基础模块包含HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块等;第三方模块包含HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块等。用户根据自己的需要开发的模块都属于第三方模块。正是有了这么多模块的支撑,Nginx的功能才会如此强大。

一、概念

      nginx echo模块是在nginx程序上扩展了echo输出字符的功能,对于调试很方便,传送门

二、开干

  1. 进入nginx目录这一步可选
  2. 下载echo模块git clone https://github.com/openresty/echo-nginx-module
  3. 查看nginx相关信息,主要为了取configure信息/usr/local/nginx1.17.5/sbin/nginx -V
  4. 复制上一步中的configure arguments:后面的信息,即上一次编译时的参数
  5. 环境验证并生成Makefilesudo ./configure --prefix=/usr/local/nginx1.17.5 --add-module=/usr/local/src/nginx-1.17.5/echo-nginx-module
  6. 重新编译make千万不要make install,否则会把原先安装的都覆盖掉
  7. 备份sudo mv /usr/local/nginx1.17.5/sbin/nginx /usr/local/nginx1.17.5/sbin/nginx.bak
  8. 替换sudo cp /usr/local/src/nginx-1.17.5/objs/nginx /usr/local/nginx1.17.5/sbin/
  9. 重启sudo /usr/local/nginx1.17.5/sbin/nginx -s reload

三、demo

  1. 配置vhost
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
default_type text/plain;
location = /test {
echo $args;
echo $query_string;
echo $request_method;
echo $content_type;
echo $content_length;
echo $fastcgi_script_name;
echo $request_uri;
echo $document_uri;
echo $document_root;
echo $server_protocol;
echo $scheme;
echo $https if_not_empty;
echo CGI/1.1;
echo nginx/$nginx_version;
echo $remote_addr;
echo $remote_port;
echo $server_addr;
echo $server_port;
echo $server_name;
}
  1. 重启nginx
1
2
3
4
sudo killall nginx
sudo /usr/local/nginx1.17.5/sbin/nginx

sudo /usr/local/nginx1.17.5/sbin/nginx -s reload
  1. 浏览器访问http://localhost/echo?a=1&b=2

四、参考

  1. 参考一
  2. 参考二
  3. 参考三