NGINX 动态模块

2024 年 8 月 29 日 | 阅读 6 分钟

Nginx Plus 是一种模块化架构。 我们可以使用软件模块来包含新特性和功能,这些模块可以按需插入到正在运行的 Nginx Plus 实例中。

动态模块包括将用户通过 IP 地址进行地理定位、调整图像大小以及将 Lua 脚本嵌入到 Nginx Plus 事件处理模型等功能添加到 Nginx Plus 中。 模块由 Nginx 公司和第三方开发人员创建。

借助动态模块,我们可以在运行时将单独的共享对象文件作为模块加载 - 包括第三方模块以及某些原生 Nginx 模块。

下一个 Nginx Plus 版本将在此动态模块功能的基础上构建。 Nginx Plus 拥有一个托管模块存储库,其中包含一系列经过我们测试并针对 Nginx Plus 认证的第三方模块,这使我们可以更有信心地将常见扩展添加到 Nginx Plus 中。

显示可用模块列表

要显示可用模块的列表,请运行以下命令(对于 Debian 或 Ubuntu 操作系统)

让我们看一下一些重要的动态模块列表


Brotli

Brotli 是一种通用的无损数据压缩算法,它使用霍夫曼编码、LZ77 算法和二阶上下文建模的变体。 它的压缩率与当前可用的最佳通用压缩方法相当。

安装步骤

1. 首先,安装 Brotli 模块。

2. 在主 Nginx Plus 配置文件 /etc/nginx/nginx.conf 的顶层(“main”)上下文中添加以下指令

3. 根据模块的需要执行一些额外的配置。

4. 要启用该模块,请重新加载 Nginx Plus


Cookie-Flag

为上游响应标头 Set-Cookie 中的 cookie 设置标志 HttpOnlysecureSameSite

安装步骤

1. 安装 Cookie-Flag 模块。

对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL

对于 Debian 或 Ubuntu

对于 SLES

2. 在主 Nginx Plus 配置文件 /etc/nginx/nginx.conf 的顶层(“main”)上下文中添加以下指令

3. 根据模块的需要执行一些额外的配置。

4. 要启用该模块,请重新加载 Nginx Plus


Encrypted-Session

此动态模块为基于 AES-256 的 Nginx 变量提供一些加密和解密支持,并带有 MAC。 它通常与 Set-Misc 动态模块和 Nginx rewrite 模块一起使用。

安装步骤

1. 安装 Encrypted - Session 模块。

对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL

对于 Debian 或 Ubuntu

对于 SLES

2. 在主 Nginx Plus 配置文件 /etc/nginx/nginx.conf 的顶层(“main”)上下文中添加以下指令

3. 根据模块的需要执行一些额外的配置。

4. 要启用该模块,请重新加载 Nginx Plus


GeoIP

使用预编译的 MaxMind GeoIP 数据库,为 Http 和 TCP/UDP 流量创建基于客户端 IP 地址的变量

安装步骤

1. 安装 GeoIP 模块。

对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL

对于 Debian 或 Ubuntu

对于 SLES

2. 在主 Nginx Plus 配置文件 /etc/nginx/nginx.conf 的顶层(“main”)上下文中添加以下指令

3. 根据模块的需要执行一些额外的配置。

4. 要启用该模块,请重新加载 Nginx Plus


GeoIP2

使用预编译的 MaxMind GeoIP2 数据库,创建基于客户端 IP 地址的变量,该数据库提供原始 GeoIP 数据库中不存在的本地化名称信息。

安装步骤

1. 安装 GeoIP2 模块。

对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL

对于 Debian 或 Ubuntu

2. 在主 Nginx Plus 配置文件 /etc/nginx/nginx.conf 的顶层(“main”)上下文中添加以下指令

3. 根据模块的需要执行一些额外的配置。

4. 要启用该模块,请重新加载 Nginx Plus


Headers-More

它用于设置和清除输入和输出标头,以扩展核心 Headers 模块

安装步骤

1. 安装 Headers-More 模块。

对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL

对于 Debian 或 Ubuntu

对于 SLES

2. 在主 Nginx Plus 配置文件 /etc/nginx/nginx.conf 的顶层(“main”)上下文中添加以下指令

3. 根据模块的需要执行一些额外的配置。

4. 要启用该模块,请重新加载 Nginx Plus


Image-Filter

裁剪、旋转、调整大小并执行 GIF、JPEG 和 PNG 图像的其他转换。

安装步骤

1. 安装 Image-Filter 模块。

对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL

对于 Debian 和 Ubuntu

对于 SLES

2. 在主 NGINX Plus 配置文件 /etc/nginx/nginx.conf 的顶层(“main”)上下文中添加以下指令

3. 根据模块的需要执行额外的配置。

4. 要启用该模块,请重新加载 NGINX Plus


Lua

将 Lua 协程集成到 Nginx 的事件处理模块中。

安装步骤

1. 安装 Lua 模块。

对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL

对于 Debian 和 Ubuntu

对于 SLES

2. 在主 NGINX Plus 配置文件 /etc/nginx/nginx.conf 的顶层(“main”)上下文中添加以下两条指令

注意: 指令必须按上述顺序排列。

3. 根据模块的需要执行额外的配置。

4. 重新加载 NGINX Plus 以启用该模块


Perl

在 Perl 中实现位置和变量处理程序,并将 Perl 调用插入到 SSI(服务器端包含)中。

安装步骤

1. 安装 Perl 模块。

对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL

对于 Debian/Ubuntu

对于 SLES

2. 在主 NGINX Plus 配置文件 /etc/nginx/nginx.conf 的顶层(“main”)上下文中添加以下指令

3. 根据模块的需要执行额外的配置。

4. 要启用该模块,请重新加载 NGINX Plus


RTMP

流式传输 RTMP(实时消息协议)、Apple HTTP Live Streaming (HLS) 和 HTTP (DASH) 视频格式上的动态自适应流。

安装步骤

1. 安装 RTMP 媒体流模块。

对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL

对于 Debian 和 Ubuntu

对于 SLES

2. 在主 NGINX Plus 配置文件 /etc/nginx/nginx.conf 的顶层(“main”)上下文中添加以下指令

3. 根据模块的需要执行额外的配置。

4. 要启用该模块,请重新加载 NGINX Plus


Set-Misc

通过扩展 Nginx 核心 Rewrite 模块,实现大量额外的 set_* 指令。

安装步骤

1. 安装 Set-Misc 模块。

对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL

对于 Debian 和 Ubuntu

对于 SLES

2. 在主 NGINX Plus 配置文件 /etc/nginx/nginx.conf 的顶层(“main”)上下文中添加以下两条指令

注意: 指令必须按此顺序排列。

3. 根据模块的需要执行额外的配置。

4. 重新加载 NGINX Plus 以启用该模块


下个主题NGINX 最小配置