Nginx模块配置应用——调试输出

100人浏览   2024-08-11 10:02:25

对于Nginx服务器来说,其常用的使用方式就是修改相关的配置文件,但是它本身又不能像编程语言一样通过输出语句对需要调试的信息进行打印输出。

1、调试输出的配置

从GitHub上下载echo-nginx-module模块。

上传到服务器

解压:tar -zxvf
echo-nginx-module-0.61.tar.gz

重新编译Nginx:./configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=
/data/soft/echo-nginx-module-0.61

上述命令执行完成后,在nginx解压目录的objs目录下将会重新生成一个nginx二进制可执行文件。

对于已经安装的nginx,在编译时不再需要make install,只需要make命令重新编译一个nginx二进制可执行文件即可。

nginx -V

备份并复制Nginx的可执行文件。

备份原nginx可执行文件,新生成的nginx可执行文件复制到nginx安装目录下的sbin目录中。

测试验证。

打开Nginx配置文件,在location下使用echo指令输出一段字符串,用于测试

default_type指令用于指定MIME类型,将其设置为文本格式;echo用于输出其后的内容,按照上述设置,完成修改nginx.conf文件后,重启服务。

2、常见的应用案例

在第三方模块echo-nginx-module中最常见的就是echo指令,且该指令只能在location块或location块下if指令中使用。

1、普通输出

重启服务后访问

2、带参数输出

如要想在echo指令输出后不换行,可用一个-n参数,重启Nginx使配置生效,访问

3、输出特殊字符

输出特殊字符,如双引号,单引号可用使用转义字符,若想输出横杠-时,则需要使用双横杠--对其转义。

对于echo模块,除了上述提供的echo指令外,还要其他指令

  • echo_duplicate:按照指定的次数重复输出指定内容;

  • echo_flush:刷新缓冲区的内容,并输出;

  • echo_sleep:按照指定的秒数,延迟输出;

  • echo_reset_timer:重置当前请求花费的时间;

  • echo_location:在当前location中读取其他location中的内容;

  • echo_foreach_split:按照指定的字符分割给出的字符串,并对其进行遍历;

  • echo_end:用于终止,如echo_foreach_split循环和条件控制结构;

  • echo_exec:内容重定向到指定位置;

  • echo_status:指定默认的响应状态码;

  • echo_before_body:在输出过滤器中整体内容输出前,输出指定内容;

  • echo_after_body:在输出过滤器中整体内容输出后,输出指定内容;

4、循环遍历

echo_duplicate 10 "=":连续输出10个=;

echo;用于浏览器中输出时换行;

echo_status:指定响应状态码;

5、延迟后,重置请求时间

$echo_timer_elapsed获取从http请求开始到当前时间的秒数,配置完成后重启Nginx;

6、指定输出的前后内容

Nginx内部重定向到名称为proxy的location处执行,修改配置后重启Nginx;

相关推荐