filts 发表于 2017-12-23 11:33:59

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.songx_rtmp_module.songx_stream_module.so
  

  查看编译生成的模块

  配置文件
  不加载模块配置文件nginx.conf 最末尾添加
  

worker_processes1;  
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,提示错误,表示没有加载模块进去
页: [1]
查看完整版本: NGINX 加载动态模块(NGINX 1.9.11开始增加加载动态模块支持)