环境说明
- 我的 nginx 的安装目录在
/usr/local/nginx
文件夹,同时./sbin/nginx
已经被我添加到了系统路径,不论在任何目录下我都可以直接nginx
调用。 - 我的 nginx 通过在官方下载 .tar.gz 的源码包编译安装完成,使用的是 1.16.1 版本,解压后的 nginx-1.16.1 文件夹还在 nginx 的安装目录下放着。
- 在 nginx 安装目录下新建了 modules 文件夹,用来放想要添加的动态模块。
获取echo-nginx-module模块
进入 /usr/local/nginx/modules
后 git clone https://github.com/openresty/echo-nginx-module.git
,将模块的内容下载到echo-nginx-module
文件夹中/usr/local/nginx/modules/echo-nginx-module/
。
重新make nginx-1.16.1
进入 /usr/local/nginx/nginx-1.16.1
这里的nginx-1.16.1
目录一般 nginx 安装目录是没有的,我这里会有的原因请见”环境说明“节。
运行./configure --add-module=/usr/local/nginx/modules/echo-nginx-module/
再运行make
,但绝对不能make install
用新版nginx替换旧版
备份正在运行的 nginx 的nginx
文件:cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
用新 make 出的 nginx
文件将其替换:rm -f /usr/local/nginx/sbin/nginx
cp /usr/local/nginx/nginx-1.16.1/objs/nginx /usr/local/nginx/sbin/
此时再在/usr/local/nginx/
目录下 ./nginx -V
,应该能看到一个--add-module=...
的内容,我的 nginx -V
结果如下:configure arguments: --with-http_ssl_module --add-module=/usr/local/nginx/modules/echo-nginx-module --with-openssl=/usr/local/ssl
其中有 –add-module=/usr/local/nginx/modules/echo-nginx-module 说明已经成功了