NGINX 加载动态模块(NGINX 1.9.11开始增加加载动态模块支持)
NGINX 1.9.11开始增加加载动态模块支持,从此不再需要替换nginx文件即可增加第三方扩展。目前官方只有几个模块支持动态加载,第三方模块需要升级支持才可编译成模块。
tinywan@tinywan:~/nginx-1.12.0$ ./configure --help | grep dynamic --with-http_xslt_module=dynamic enable dynamic ngx_http_xslt_module --with-http_image_filter_module=dynamic enable dynamic ngx_http_image_filter_module --with-http_geoip_module=dynamic enable dynamic ngx_http_geoip_module --with-http_perl_module=dynamic enable dynamic ngx_http_perl_module --with-mail=dynamic enable dynamic POP3/IMAP4/SMTP proxy module --with-stream=dynamic enable dynamic TCP/UDP proxy module --with-stream_geoip_module=dynamic enable dynamic ngx_stream_geoip_module --add-dynamic-module=PATH enable dynamic external module --with-compat dynamic modules compatibility
如上可看出官方支持9个动态模块编译,需要增加第三方模块,使用参数--add-dynamic-module=即可。
NGINX动态模块语法:
load_module
Default: —
配置段: main
说明:版本必须>=1.9.11
实例:load_module modules/ngx_mail_module.so;
编译安装
查看编译生成的模块
tinywan@tinywan:/usr/local/nginx/modules$ ls ngx_http_xslt_filter_module.so ngx_rtmp_module.so ngx_stream_module.so
查看编译生成的模块
配置文件
不加载模块配置文件nginx.conf 最末尾添加
worker_processes 1; load_module "modules/ngx_rtmp_module.so"; load_module "modules/ngx_stream_module.so"; events { worker_connections 1024; } stream { upstream rtmp { server 127.0.0.1:8089; # 这里配置成要访问的地址 server 127.0.0.2:1935; server 127.0.0.3:1935; #需要代理的端口,在这里我代理一一个RTMP模块的接口1935 } server { listen 1935; # 需要监听的端口 proxy_timeout 20s; proxy_pass rtmp; } } http { include mime.types; ... } rtmp { server { listen 1935; application mytv { live on; } } }
启动Nginx,提示错误,表示没有加载模块进去
标签:
Nginx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构