前言:
本人安装nginx-echo-module的初衷是之前遇到过一些时候,虽然有配置location规则,但是却在浏览器访问时,出现错误等未匹配或不符合预期的情况,想要知道,实际上是否有匹配哪条location规则,但是nginx的日志却只能记录请求url,所以,看到echo输出就很开心,毕竟感觉return不是那么好用的,作为一个小白前端,只能写到这种程度,各位参考指教吧~
- 下载nginx源码 下载地址:链接: https://pan.baidu.com/s/1m3ICsUnJ6XXilFdYrXDQXQ 密码: 936t
- 下载nginx-echo-module 链接:https://github.com/openresty/echo-nginx-module/releases/tag/v0.61
- 命令行新建文件夹,将下载下来的nginx源码解压,cd到该目录
./configure
sudo make
sudo make install
此时,nginx已经成功安装到系统/usr/local/nginx目录下,可执行文件是/usr/local/nginx/sbin中的nginx文件
启动命令:cd /usr/local/nginx/sbin
sudo ./nginx
重启使配置生效 sudo ./nginx -s reload
停止服务 sudo ./nginx -s stop
4. 将nginx-echo-module解压后移动到3中目录下
sudo ./configure --add-module=echo-nginx-module-0.61
sudo make
sudo make install
这个过程中,因为按照网上教程操作,但是,下载的0.60及0.58在sudo make时都会在控制台报2个错,因为没截图,记得报错是赋值类型不匹配相关,错误文件是http-request.c,后来尝试下载了链接中的0.61版本,重新从.configure执行一次,发现没有报错了(这个过程真是煎熬啊,自己又不懂nginx实现的细节,网上又没有很多类似报错信息,像没头苍蝇一样乱试)
接下来,发现nginx安装目录下的nginx.conf不允许修改,尝试在文件简介处将权限修改为可读写,但是还是不行,只能讲文件复制到别处修改后再覆盖回来,个人其他nginx配置是放在nginx安装目录下新建了一个servers文件夹,里头有各种域名的配置文件
此时,再在任意location /xxx配置中echo 'xxxxx' 然后在浏览器中访问该域名:端口号/location路径, 发现回车后,浏览器会自动下载下来一个文件,内容为echo输出的字符串(这里不太明白为什么,开始初衷是以为echo应该在浏览器控制台输出才对,可能还是哪里没太搞对吧【补充:今天做测试时,发现可以在页面上直接展示echo的字符串,好像只有匹配location时,会下载这个文件~(有待考证)】),不过到目前为止,nginx-echo也算能用了,不枉捣鼓了一天
注:
这种方法只适用于自己编译nginx源码,不适用于直接下载安装nginx的(包括npm install,brew install等),直接下载的在安装目录下是没有.configure可执行文件的!
参考链接:
https://blog.csdn.net/rex_nie/article/details/79305097