Nginx在已安装的情况下新增 echo 模块

1 下载需要的echo模块

# wget https://github.com/openresty/echo-nginx-module/archive/v0.61.tar.gz
# tar xf v0.61.tar.gz -C /usr/src/
# ls
debug kernels nginx-1.12.0.tar.gz
echo-nginx-module-0.61 nginx-1.12.0 v0.61.tar.gz

2 进入源码目录

# cd nginx-1.12.0

3 查看原有编译选项并复制

# nginx -V
nginx version: nginx/1.12.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-debug --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --add-module=/usr/local/nginx/echo-nginx-module-0.61/

然后复制 --prefix后面的

4 生成 Makefile,为下一步的编译做准备,注意这里很关键,要加上之前已经安装好的模块。

# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-debug --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --add-module=/usr/local/nginx/echo-nginx-module-0.61/ --add-modure=/usr/local/nginx/sbin/nginx

5 开始编译,但别安装 (make install会直接覆盖安装)

# make

6 注意先备份一下之前老的,手动安装一下。

# mv /usr/local/nginx/sbin/nginx{,-A}

7 在objs查找nginx然后移到/usr/local/nginx/sbin/下

# find / -name objs
/usr/src/nginx-1.12.0/objs
# cd /usr/src/nginx-1.12.0/objs/
# ls
addon nginx ngx_auto_headers.h src
autoconf.err nginx.8 ngx_modules.c
Makefile ngx_auto_config.h ngx_modules.o
# mv /usr/src/nginx-1.12.0/objs/nginx /usr/local/nginx/sbin/

说明

增加模块是这样的步骤
那么升级也是这个步骤

验证

就在配置文件里修改location

        location / {
root html;
echo 'A';
index index.html index.htm;
}
location = /abc {
echo 'B';
root html;
index index.html;
}

# nginx -s reload //刷新配置文件

//然后另外开启一个终端
# curl http://192.168.99.128/abcd
A
# curl http://192.168.99.128/ab
A
# curl http://192.168.99.128/abc
B
# curl http://192.168.99.128/abcd
A