Nginx 动态模块
Nginx Plus 是一种模块化架构。我们可以通过软件模块包含新的特性和功能,这些模块可以按需插入到正在运行的 Nginx Plus 实例中。
动态模块包括 Nginx Plus 的功能,例如按 IP 地址定位用户、调整图像大小和将 Lua 脚本嵌入到 Nginx Plus 事件处理模型中。模块由 Nginx、Incorporation 和第三方开发人员创建。
在动态模块的帮助下,我们可以在运行时将单独的共享对象文件作为模块加载-第三方模块以及一些本机 Nginx
下一个 Nginx Plus 版本将建立在这个动态模块功能的基础上。 Nginx Plus 有一个托管模块存储库,其中包含一系列我们已经针对 Nginx Plus 进行测试和认证的第三方模块,使我们能够更轻松地自信地向 Nginx Plus 添加常用扩展。
显示可用模块列表
要显示可用模块列表,请运行以下命令(适用于 Debian 或 Ubuntu 操作系统):
$ apt-cache search Nginx-plus-module Nginx-plus-module-geoip-Nginx Plus, provided by Nginx, Inc. (GeoIP dynamic modules) Nginx-plus-module-geoip-dbg-Debugging symbols for the Nginx-plus-module-geoip Nginx-plus-module-geoip2-Nginx Plus, provided by Nginx, Inc. (3rd-party GeoIP2 dynamic modules) Nginx-plus-module-geoip2-dbg-Debugging symbols for the Nginx-plus-module-geoip2 Nginx-plus-module-headers-more-Nginx Plus, provided by Nginx, Inc. (3rd-party headers-more dynamic module) Nginx-plus-module-headers-more-dbg-Debugging symbols for the Nginx-plus-module-headers-more Nginx-plus-module-image-filter-Nginx Plus, provided by Nginx, Inc. (image filter dynamic module) Nginx-plus-module-image-filter-dbg-Debugging symbols for the Nginx-plus-module-image-filter
来看看一些重要的动态模块列表:
Brotli
Brotli 是一种通用的无损数据压缩算法,它使用霍夫曼编码、LZ77 算法和二阶上下文建模的变体。其压缩率可与目前可用的最佳通用压缩方法相媲美。
安装步骤:
1.首先,安装 Brotli 模块。
$ apt-get install Nginx-plus-module-brotli
2、在 Nginx Plus 主配置文件/etc/Nginx/Nginx.conf 的顶级("main")上下文中添加以下指令:
load_module modules/ngx_http_brotli_filter_module.so; load_module modules/ngx_http_brotli_static_module.so;
3、根据模块的需要执行一些额外的配置。
4.要启用该模块,请重新加载 Nginx Plus:
$ Nginx-t && Nginx-s reload
Cookie-Flag
设置标志 HttpOnly、secure 和 SameSite用于 Set-Cookie 上游响应标头中的 cookie。
安装步骤:
1.安装 Cookie-Flag 模块。
对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL:
$ yum install Nginx-plus-module-cookie-flag
对于 Debian 或 Ubuntu:
$ apt-get install Nginx-plus-module-cookie-flag
对于SLES:
$ zypper install Nginx-plus-module-cookie-flag
2、在 Nginx Plus 主配置文件/etc/Nginx/Nginx.conf 的顶级("main")上下文中添加以下指令:
load_module modules/ngx_http_cookie_flag_filter_module.so;
3、根据模块的需要执行一些额外的配置。
4.要启用该模块,请重新加载 Nginx Plus:
$ Nginx-t && Nginx-s reload
加密会话
这个动态模块为基于 AES-256 和 MAC 的 Nginx 变量提供了一些加密和解密支持。它通常与 Set-Misc 动态模块和 Nginx 重写模块一起使用。
安装步骤:
1.安装加密-会话模块。
对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL:
$ yum install Nginx-plus-module-encrypted-session
对于 Debian 或 Ubuntu:
$ apt-get install Nginx-plus-module-encrypted-session
对于SLES:
$ zypper install Nginx-plus-module-encrypted-session
2、在 Nginx Plus 主配置文件/etc/Nginx/Nginx.conf 的顶级("main")上下文中添加以下指令:
load_module modules/ndk_http_module.so; load_module modules/ngx_http_encrypted_session_module.so;
3、根据模块的需要执行一些额外的配置。
4.要启用该模块,请重新加载 Nginx Plus:
$ Nginx-t && Nginx-s reload
GeoIP
使用预编译的 MaxMind GeoIP 数据库为 Http 和 TCP/UDP 流量创建基于客户端 IP 地址的变量:
安装步骤:
1.安装 GeoIP 模块。
对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL:
$ yum install Nginx-plus-module-geoip
对于 Debian 或 Ubuntu:
$ apt-get install Nginx-plus-module-geoip
对于SLES:
$ zypper install Nginx-plus-module-geoip
2、在 Nginx Plus 主配置文件/etc/Nginx/Nginx.conf 的顶级("main")上下文中添加以下指令:
load_module modules/ngx_http_geoip_module.so; load_module modules/ngx_stream_geoip_module.so;
3、根据模块的需要执行一些额外的配置。
4.要启用该模块,请重新加载 Nginx Plus:
$ Nginx-t && Nginx-s reload
GeoIP2
使用预编译的 MaxMind GeoIP2 数据库根据客户端的 IP 地址创建变量,该数据库提供原始 GeoIP 数据库中不存在的本地化名称信息。
安装步骤:
1.安装 GeoIP2 模块。
对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL:
$ yum install Nginx-plus-module-geoip2
对于 Debian 或 Ubuntu:
$ apt-get install Nginx-plus-module-geoip2
2、在 Nginx Plus 主配置文件/etc/Nginx/Nginx.conf 的顶级("main")上下文中添加以下指令:
load_module modules/ngx_http_geoip2_module.so; load_module modules/ngx_stream_geoip2_module.so;
3、根据模块的需要执行一些额外的配置。
4.要启用该模块,请重新加载 Nginx Plus:
$ Nginx-t && Nginx-s reload
Headers-More
用于设置和清除输入和输出标题,用于扩展核心Headers模块:
安装步骤:
1.安装 Headers-More 模块。
对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL:
$ yum install Nginx-plus-module-headers-more
对于 Debian 或 Ubuntu:
$ apt-get install Nginx-plus-module-headers-more
对于SLES:
$ zypper install Nginx-plus-module-headers-more
2、在 Nginx Plus 主配置文件/etc/Nginx/Nginx.conf 的顶级("main")上下文中添加以下指令:
load_module modules/ngx_http_headers_more_filter_module.so;
3、根据模块的需要执行一些额外的配置。
4.要启用该模块,请重新加载 Nginx Plus:
$ Nginx-t && Nginx-s reload
Image-Filter
对 GIF、JPEG 和 PNG 图像进行裁剪、旋转、调整大小和执行其他转换。
安装步骤:
1.安装 Image-Filter 模块。
对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL:
$ yum install Nginx-plus-module-image-filter
对于 Debian 和 Ubuntu:
$ apt-get install Nginx-plus-module-image-filter
对于SLES:
$ zypper install Nginx-plus-module-image-filter
2、在主 Nginx Plus 配置文件/etc/Nginx/Nginx.conf 的顶级("main")上下文中添加以下指令:
load_module modules/ngx_http_image_filter_module.so;
3、执行模块需要的额外配置。
4.要启用该模块,请重新加载 Nginx Plus:
$ Nginx-t && Nginx-s reload
Lua
将Lua协程集成到Nginx的事件处理模块中。
安装步骤:
1.安装 Lua 模块。
对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL:
$ yum install Nginx-plus-module-lua
对于 Debian 和 Ubuntu:
$ apt-get install Nginx-plus-module-lua
对于SLES:
$ zypper install Nginx-plus-module-lua
2、在主 Nginx Plus 配置文件/etc/Nginx/Nginx.conf 的顶级("main")上下文中添加以下两个指令:
load_module modules/ndk_http_module.so; load_module modules/ngx_http_lua_module.so;
注意: 指令必须按照上述顺序。
3.执行模块需要的额外配置。
4.重新加载 Nginx Plus 以启用模块:
$ Nginx-t && Nginx-s reload
Perl
在 Perl 中实现位置和变量处理程序,并将 Perl 调用插入 SSI(服务器端包含)。
安装步骤:
1.安装 Perl 模块。
对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL:
$ yum install Nginx-plus-module-perl
对于 Debian/Ubuntu:
$ apt-get install Nginx-plus-module-perl
对于SLES:
$ zypper install Nginx-plus-module-perl
2、在主 Nginx Plus 配置文件/etc/Nginx/Nginx.conf 的顶级("main")上下文中添加以下指令:
load_module modules/ngx_http_perl_module.so;
3、执行模块需要的额外配置。
4.启用模块重新加载 Nginx Plus:
$ Nginx-t && Nginx-s reload
RTMP
流 RTMP(实时消息传递协议)、Apple HTTP 实时流传输(HLS) 和基于 HTTP 的动态自适应流传输(DASH) 视频格式。
安装步骤:
1.安装 RTMP 媒体流模块。
对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL:
$ yum install Nginx-plus-module-rtmp
对于 Debian 和 Ubuntu:
$ apt-get install Nginx-plus-module-rtmp
对于SLES:
$ zypper install Nginx-plus-module-rtmp
2、在主 Nginx Plus 配置文件/etc/Nginx/Nginx.conf 的顶级("main")上下文中添加以下指令:
load_module modules/ngx_rtmp_module.so;
3、执行模块需要的额外配置。
4.要启用该模块,请重新加载 Nginx Plus:
$ Nginx-t && Nginx-s reload
Set-Misc
通过扩展 Nginx 核心重写模块,实现许多额外的 set_* 指令。
安装步骤:
1.安装 Set-Misc 模块。
对于 CentOS、Amazon Linux、Oracle Linux 和 RHEL:
$ yum install Nginx-plus-module-set-misc
对于 Debian 和 Ubuntu:
$ apt-get install Nginx-plus-module-set-misc
对于SLES:
$ XXXipper install Nginx-plus-module-set-misc
2、在主 Nginx Plus 配置文件/etc/Nginx/Nginx.conf 的顶级("main")上下文中添加以下两个指令:
load_module modules/ndk_http_module.so; load_module modules/ngx_http_set_misc_module.so;
注意: 指令必须按此顺序。
3.执行模块需要的额外配置。
4.重新加载 Nginx Plus 以启用模块:
$ Nginx-t && Nginx-s reload
下一章:Nginx 最少配置
安全服务器是只允许尽可能多的服务器。理想情况下,我们将通过单独启用附加功能来构建基于最小系统的服务器。使用最少的配置也有助于调试。如果错误在最小系统中不可用,则会单独添加功能并继续搜索错误。这是运行 Nginx 所需的 ...