Nginx安装echo模块
echo-nginx-module 模块可以在Nginx中用来输出一些信息,可以用来实现简单接口或者排错。
项目地址:https://github.com/openresty/echo-nginx-module
获取Nginx源码
因为需要编译模块,需要有Nginx源码。
如果已安装Nginx,需要查看当前安装版本的编译参数:
$ /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.12.2
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module
其中configure arguments这个参数是非常重要的,我们在后面安装Lua模块的时候,需要以这个为基础,增加新的参数。
如果还没有安装Nginx,上面可以忽略。
Nginx下载页面:http://nginx.org/en/download.html
这里我们以 nginx/1.12.2 为例。需要获取源码:
$ cd /opt/
$ wget http://nginx.org/download/nginx-1.12.2.tar.gz
$ tar -zxvf nginx-1.12.2.tar.gz
安装取echo-nginx-module
获取echo-nginx-module
我们下载最新稳定版(截止到2018-12-23),并解压,不用安装:
$ cd /opt
$ wget https://github.com/openresty/echo-nginx-module/archive/v0.61.tar.gz
$ tar zxvf v0.61.tar.gz
编译Nginx
Nginx编译参数配置:
$ cd /opt/nginx-1.12.2/
$ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --add-module=/opt/echo-nginx-module-0.61
这里因为已经安装了Nginx,所以这里的参数是从Nginx -V的输出里获取的,并追加了新的参数:
--add-module=/opt/echo-nginx-module-0.61
运行上面的./configure后进行编译安装:
$ make -j2
$ make install
make install后,会覆盖之前安装的Nginx。
测试echo模块
在/usr/local/nginx/conf/nginx.conf中server代码块里加入如下代码:
location /hello {
default_type 'text/plain';
return 200 'hello!';
}
location /hello_echo {
default_type 'text/plain';
echo "hello, echo!";
}
注意:重新编译 Nginx 二进制,Nginx 需要停止重启。而普通配置更新则 reload 即可:
$ kill -QUIT `cat /usr/local/nginx/logs/nginx.pid` && /usr/local/nginx/sbin/nginx
如果支持service nginx restart,则可以这样重新启动:
$ service nginx restart && /usr/local/nginx/sbin/nginx -s reload
然后curl测试:
$ curl http://127.0.0.1/hello
hello!
$ curl http://127.0.0.1/hello_echo
hello, echo!
当然, echo-nginx-module 模块不仅仅是提供echo这么简单的指令,还有其它的指令,详见:https://github.com/openresty/echo-nginx-module#content-handler-directives
编译动态模块
echo-nginx-module 支持以动态模块方式加载,详见:https://github.com/openresty/echo-nginx-module#installation 。Nginx版本需要 >=1.9.11 。
$ cd /opt/nginx-1.12.2/
$ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --add-dynamic-module=/opt/echo-nginx-module-0.61
$ make -j2
$ make install
相比静态编译,参数--add-module改成了--add-dynamic-module。
编译成功后,会把模块安装在nginx/modules/目录。查看:
$ ls /usr/local/nginx/modules/
ngx_http_echo_module.so
接下来我们需要在nginx.conf配置中加入以下两行,实现动态调用模块:
load_module /usr/local/nginx/modules/ngx_http_echo_module.so;
注意:
load_module指令不能放在http{}里面:
worker_processes 1;
load_module xxx;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
}
接下来可以按上面的 测试echo模块 小节测试。唯一不同的是无需使用kill -QUIT退出Nginx,直接使用nginx -s reload热重启就行了。
参考
1、Nginx安装Nginx-echo模块 - chen2013 - 博客园
http://www.cnblogs.com/chenjianxiang/p/8489055.html
2、openresty/echo-nginx-module
https://github.com/openresty/echo-nginx-module#installation
3、Nginx编译安装Lua - 飞鸿影~ - 博客园
https://www.cnblogs.com/52fhy/p/10164553.html
Nginx安装echo模块的更多相关文章
- Nginx安装echo模块echo-nginx-module
https://github.com/openresty/echo-nginx-module 这个模块不包含在 Nginx 源码中,安装方法: 1. 首先下载模块源码:https://github.c ...
- nginx 安装echo模块
学习资源: https://www.cnblogs.com/xwupiaomiao/p/7997938.html https://blog.csdn.net/hb1707/article/detail ...
- nginx 安装第三方模块(lua)并热升级
需求: nginx上将特定请求拒绝,并返回特定值. 解决办法: 使用lua脚本,实现效果. 操作步骤: 安装Luajit环境 重新编译nginx(目标机器上nginx -V 配置一致,并新增两个模块n ...
- Nginx 编译 echo 模块
Nginx 编译 echo 模块 echo模块下载地址:https://github.com/openresty/echo-nginx-module 查看nginx已经编译的模块, nginx -V ...
- nginx 安装第三方 模块
查看nginx在安装时开启了哪些模块 如果你nginx是rpm包安装的,直接用如下命令nginx -V 如果你是源码包编译安装,假如你的安装路径是/usr/local/nginx,那么你可以使用: / ...
- Nginx 的 Echo 模块 —— echo-nginx-module(转)
Nginx 有个 echo 模块可以用来输出一些简单的信息,例如: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 ...
- Nginx安装Nginx-echo模块
Nginx-echo可以在Nginx中用来输出一些信息,是在测试排错过程中一个比较好的工具.它也可以做到把来自不同链接地址的信息进行一个汇总输出.总之能用起来可以给开发人员带来挺大帮助的.下面看看我们 ...
- nginx安装lua-nginx-module模块
转载注明地址:http://www.cnblogs.com/dongxiao-yang/p/5312285.html 本文主要采用手动源码安装的方式将lua-nginx模块编译到nginx源码内部 一 ...
- nginx安装第三方模块
原已经安装好的nginx,现在需要添加一个未被编译安装的模块 举例说明:安装第三方的ngx_cache_purge模块(用于清除指定URL的缓存) nginx的模块是需要重新编译nginx,而不是像a ...
随机推荐
- a,b值进行交换的方法
方法一 最容易想到的就是拿一个空“杯子”进行转换,代码如下: <script type="text/javascript"> ; ; var c; c = a; a = ...
- C/C++中volatile关键字详解
1. 为什么用volatile? C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier.这是 BS 在 "The ...
- 02.02.02 第2章 制作power bi图表(Power BI商业智能分析)
---恢复内容开始--- 02.02.02第2章 制作power bi图表 02.02.02.01 power pivot数据导入 00:08:43 02.02.02.02建立数据透视表 00:11: ...
- Win10专业版激活
转载来自:http://www.zhuangjiba.com/bios/3432.html 如何激活win10正式版图文解说 打开开始菜单,找到设置,点开“更新和安全”,切换到“激活”选项卡,查看到当 ...
- (转)支持 PS/2 与 USB 的键盘过滤驱动(可卸载)
Author: sinisterEmail: sinister@whitecell.orgHomepage:http://www.whitecell.org Date: 2007-02-2 ...
- 整理CSS中display flex(布局利器)
关于display:flex布局,有人了解颇深,我也是看着别人的东西学习的. display:flex的布局是什么.基本概念之类的我根本就不了解,只会用.每次看到概念之类的东西,我都是扫一眼就过去. ...
- php签名认证
一.概述 开年第一篇,该篇主要讲述了接口开发中,如何安全认证.如何用php签名认证. 二.说说历史 签名认证是什么?为什么要做签名认证?签名认证哪里会用到?no.no.no.....是不是,是不是,一 ...
- java集成memcached、redis防止缓存穿透
下载相关jar,安装Memcached,安装教程:http://www.runoob.com/memcached/memcached-install.html spring配置memcached &l ...
- 你可能不知道的web api
简介 作为前端工作者,我们的工作与web是分不开的,随着HTML5的日益壮大,浏览器自带的webapi也随着增多.本篇文章主要选取了几个有趣且有用的webapi进行介绍,分别介绍其用法.用处以及浏览器 ...
- VUE最佳实践
vuex 作为model数据请求由action来获取,页面组建级的发送action,返回promise给组建使用,如果使用周期较长需comit到mutation保存到state. 数据分模块,根据业务 ...