前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux 下 nginx 安装echo扩展模块

linux 下 nginx 安装echo扩展模块

作者头像
地球流浪猫
发布2019-12-19 19:16:14
3.7K0
发布2019-12-19 19:16:14
举报
文章被收录于专栏:流浪猫的golang流浪猫的golang

nginx 在linux(ubuntu 16.0.4) 安装echo模块

echo 模块可以将nginx 变量的信息输出到网页中。echo 模块对学习nginx 配置文件有很大帮助,对应调试nginx 配置文件中变量特步方便。想要深入学习nginx 配置文件,可以试一下。

  • 下载扩展模块 cd /newhome/nginx/nginx-1.13.0 wget https://github.com/openresty/echo-nginx-module/archive/v0.61.tar.gz tar zvxf v0.61.tar.gz

扩展模块下载到任何位置都是可以的,需要在configure 的过程引用到解压地址

  • nginx源码下的configure和编译 没有源码同学请先下载linux nginx 源码 源码地址 https://nginx.org/en/download.html
    • 第一步 ./configure --add-module=/newhome/nginx/nginx-1.13.0/echo-nginx-module-0.61 或者 ./configure --add-dynamic-module=/newhome/nginx/nginx-1.13.0/echo-nginx-module-0.61

    自定义解压路径替换/newhome/nginx/nginx-1.13.0/。 由于我没有显示指明-–prefix=安装路径,所以nginx会使用默认安装路径/usr/local/nginx 所有文件默认安装路径 nginx path prefix: "/usr/local/nginx" nginx binary file: "/usr/local/nginx/sbin/nginx" nginx modules path: "/usr/local/nginx/modules" nginx configuration prefix: "/usr/local/nginx/conf" nginx configuration file: "/usr/local/nginx/conf/nginx.conf" nginx pid file: "/usr/local/nginx/logs/nginx.pid" nginx error log file: "/usr/local/nginx/logs/error.log" nginx http access log file: "/usr/local/nginx/logs/access.log" --add-module是静态添加模块 --add-dynamic-module 是动态添加模块,需要在linux 版本1.19.11以后支持, 可以通过配置文件是否启用该模块 load_module=*.so

    • 第二步 make
    • 第三步 如果想要重新安装请执行make install

    不想执行将编译出来nginx 二进制 则可以用替换的方式。 替换/usr/local/nginx/sbin/下 nginx 二进制 rm -rf /usr/local/nginx/sbin/nginx cp ./objs/nginx /usr/local/nginx/sbin/ ps : 虽然说是重新安装,但是我执行过make install之后,并没有把我的/usr/local/nginx/conf/nginx.conf 替换成新的。 我只改过/usr/local/nginx/conf/nginx.conf配置所有重新安装还是copy对我没有啥影响。后来阅读make install代码是发现 test -f '$(DESTDIR)/usr/local/nginx/conf/nginx.conf' \ || cp conf/nginx.conf '$(DESTDIR)/usr/local/nginx/conf/nginx.conf' cp conf/nginx.conf '$(DESTDIR)/usr/local/nginx/conf/nginx.conf.default' 不是很懂…如果哪位同学明白知道原因可以告诉我…

  • 检验 /usr/local/nginx/sbin/nginx -V
代码语言:javascript
复制
root@VM-0-13-ubuntu:/usr/local/nginx/sbin# ./nginx -V
nginx version: nginx/1.13.0
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 
configure arguments: --add-dynamic-module=/newhome/nginx/nginx-1.13.0/echo-nginx-module-0.61

可以看到--add-dynamic-module=/newhome/nginx/nginx-1.13.0/echo-nginx-module-0.61 动态模块已经被添加上了

  • 如果是 --add-dynamic-module则添加 在nginx.conf 中添加 load_module modules/ngx_http_echo_module.so;表示启用这个模块如果不想启用,则不添加。
  • 如果是 --add-module 则不用添加直接重启即可,所有模块都会被加载。
  • 如果nginx 已经启动,请用./nginx -s stop 停止后,再启动或者别的重启nginx的方式,不要 ./nginx -s reload 重新加载配置文件,否则echo 模块不生效。

echo 模块基本使用

hello world

代码语言:javascript
复制
    location /hello {
     echo hello world;
     echo "hello world";
     echo $request_uri; ##输出请求路径uri
   }

延迟后输出

代码语言:javascript
复制
location /echo_with_sleep {
     echo hello;
     echo_sleep   2.5;  # in sec
     echo world;
   }

重复输出

代码语言:javascript
复制
 location /duphello {
     echo_duplicate 1000 'hello';
   }

处理请求前后加入内容

代码语言:javascript
复制
location = /api/proxy_before_after {
    echo_before_body before;
    proxy_pass http://127.0.0.1:8090;
    echo_after_body after;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • echo 模块基本使用
    • hello world
      • 延迟后输出
        • 重复输出
          • 处理请求前后加入内容
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档