Linux教程网

如何编译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
2
3
4
5
6
7
cd nginx-1.22.1

./configure --prefix=/usr/local/nginx --with-http_ssl_module \
--with-stream_ssl_module --add-module=/root/echo-nginx-module

# 编译安装
make && make install

其实编译第三方模块就是把模块编译到 nginx 二进制中去,所以只需要在执行 configure 时通过 --add-module 指定要编译的模块代码路径即可,如上所述。

验证测试

编译完成之后,我们来验证一下 echo 模块是否成功编译到 nginx 二进制中。

我们只需要在 nginx.conf 中的 server{} 中增加 echo 指令即可测试验证

1
2
3
location /hello {
echo "hello, world!";
}

修改配置文件后执行 /usr/local/nginx/sbin/nginx -s reload 重新加载配置文件

通过 curl 访问测试

1
2
$ curl 127.0.0.1:80/hello
hello, world!

如果在 reload 没有报错,访问结果如上所示,表示 echo 模块成功编译到 nginx 了


专题:

本文发表于 2023-03-11,最后修改于 2024-04-04。

本站永久域名「 golinuxblog.com 」,也可搜索「 Linux教程网 」找到我。


上一篇 « Go语言生成随机数 下一篇 » 如何使用vscode调试nginx

推荐阅读

Big Image