如何编译nginx第三方模块
nginx 除了强劲的性能之外,另外一个特点就是扩展性。nginx 是通过模块的方式实现的,除了官方模块外,也有非常丰富第三方模块,这才有了 nginx 强大的生命力。
在上篇文章中介绍了 如何通过源码编译 nginx,这篇文章介绍如何编译 nginx 模块。
编译模块
我们以 OpenResty 创始人 章亦春 开发的 echo-nginx-module
为例,来介绍如何编译一个第三方模块。
1. 下载模块代码
1 | git clone https://github.com/openresty/echo-nginx-module.git |
假设我们已经有了 nginx 代码,且已经安装了编译 nginx 所需要的所有依赖包
1 | echo-nginx-module nginx-1.22.1 |
当前的目录结构如上所述
2. 编译安装
编译安装时,需要进入 nginx-1.22.1 目录
1 | cd nginx-1.22.1 |
其实编译第三方模块就是把模块编译到 nginx 二进制中去,所以只需要在执行 configure
时通过 --add-module
指定要编译的模块代码路径即可,如上所述。
验证测试
编译完成之后,我们来验证一下 echo
模块是否成功编译到 nginx 二进制中。
我们只需要在 nginx.conf 中的 server{}
中增加 echo
指令即可测试验证
1 | location /hello { |
修改配置文件后执行 /usr/local/nginx/sbin/nginx -s reload
重新加载配置文件
通过 curl 访问测试
1 | $ curl 127.0.0.1:80/hello |
如果在 reload 没有报错,访问结果如上所示,表示 echo
模块成功编译到 nginx 了