必须源码编译集成openresty/echo-nginx-module,因官方nginx不自带且不支持动态加载;需下载匹配版本nginx源码和echo模块,configure时用--add-module指定路径,编译安装后在location中用echo指令调试。

要让 Nginx 支持 echo 指令(比如输出字符串、变量或调试信息),必须通过源码编译的方式,把 openresty/echo-nginx-module 作为第三方模块集成进去。Nginx 官方二进制包不包含该模块,也无法在运行时动态加载,所以不能靠配置文件或插件目录启用。
准备 echo 模块源码
从 GitHub 获取稳定版本的模块代码:
- 推荐使用最新 release(如 v0.62+),执行:
git clone https://www.php.cn/link/f9358d6ae3e191c88d6610acb757d152.git /path/to/echo-nginx-module - 确保路径不含空格和中文,例如
/usr/local/src/echo-nginx-module - 不需要编译或安装该模块本身,它只提供 C 源码供 Nginx 编译时引用
获取并进入 Nginx 源码目录
必须使用与当前运行版本一致或兼容的 Nginx 源码(如线上是 1.24.0,就用同版本源码):
- 下载地址:
https://nginx.org/download/nginx-1.24.0.tar.gz - 解压后进入目录:
tar zxvf nginx-1.24.0.tar.gz && cd nginx-1.24.0 - 若已安装 Nginx,先查清原始编译参数:
nginx -V 2>&1 | grep "configure arguments",后续./configure必须保留原有选项,再追加--add-module=...
配置、编译并安装
在 Nginx 源码根目录下执行:
- 配置命令示例(关键参数含
--add-module):./configure --prefix=/usr/local/nginx \<br> --user=nginx --group=nginx \<br> --with-http_ssl_module \<br> --with-http_v2_module \<br> --with-http_realip_module \<br> --with-http_stub_status_module \<br> --add-module=/usr/local/src/echo-nginx-module
- 确认无报错后编译:
make -j$(nproc) - 替换旧二进制:
sudo make install(注意:这会覆盖/usr/local/nginx/sbin/nginx) - 停止旧进程:
nginx -s stop,再启动新版本:/usr/local/nginx/sbin/nginx
验证与基础用法
修改 nginx.conf,添加一个测试 location:
- 最简测试:
location /test {<br> echo "it works";<br> default_type text/plain;<br>} - 支持变量:
set $msg "Hello";<br>echo $msg;<br>echo "World";
- 访问
http://your-server/test应返回纯文本,不是下载或 404;若提示unknown directive "echo",说明模块未生效,需检查编译步骤和nginx -V输出中是否含--add-module











