使用 echo 模块输出 nginx 变量
最近在学习 nginx 的反向代理,在处理请求和响应的时候,需要处理 header 头信息用到了很多 nignx 变量,但是在传递给代理服务器时,我不知道我设置的 proxy_set_header 等信息是否设置正确,以及其他用到的变量到底当前值是多少我也不知道。调试起来很费劲。
发现一个第三方 nginx 模块:echo,可以方便的输出信息,利用这一模块可以实现变量值读取到 html,调试方便了很多。
echo GitHub 主页:https://github.com/openresty/echo-nginx-module
编译
echo 模块需要从源码编译 nginx 时使用指令:--add-module=
加入,源码编译 nginx 及加入第三方模块参考我的教程:Nginx 安装/编译教程
使用
echo 使用命令很简单:
server{
listen 80;
server_name 127.0.0.1;
location /echo {
default_type text/plain;
echo 'remote address: $remote_addr';
echo 'remote_port: $remote_port';
}
}
default_type text/plain 指令设置响应内容的格式,不设置的话浏览器访问会返回下载文件而不是网页。
执行 curl 127.0.0.1/echo
或浏览器访问 127.0.0.1/echo 路径就会看到 echo 定义的内容。
**注意如果在 echo 指令下面定义了其他 html 页面或者 proxy_pass 反向代理,则 echo 的内容会被覆盖,如果 echo 指令在
location 段的最后,则会显示 echo 指令的内容。**
标签:无