最近在学习 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 指令的内容。**

标签:无

你的评论