通过chef动态加载nginx第三方模块
Dynamic loading of nginx third party module via chef
我正在尝试将第三方模块动态加载到 nginx。
https://github.com/stnoonan/spnego-http-auth-nginx-module
Nginx 是使用 chef 配方通过包安装来安装的。
我尝试将模块编译为模块二进制 .so 文件并将其复制到 /etc/nginx/modules 目录并将以下行添加到 nginx.conf,但它显示错误 "unknown directive load_module"。
nginx.conf
load_module modules/ngx_http_auth_spnego_module.so ;
厨师食谱
bash 'create_spnego_module' do
code <<-EOH
mkdir -p #{node['nginx']['dir']}/modules
EOH
end
cookbook_file "#{node['nginx']['dir']}/modules/ngx_http_auth_spnego_module.so" do
source 'ngx_http_auth_spnego_module.so'
owner 'root'
group node['root_group']
mode '0644'
notifies :reload, 'service[nginx]', :delayed
end
有没有其他方法可以通过 chef 加载此模块而无需重新编译 nginx 源代码?
如评论所述,您的Nginx版本太旧,无法动态加载模块。您需要使用新模块重新编译它或安装新版本。
模块二进制编译时,编译模块的配置参数要和安装的nginx一致。
使用命令行参数 'nginx -V
' ,在 nginx 安装期间检查配置参数。在模块编译期间使用相同的参数。
我正在尝试将第三方模块动态加载到 nginx。
https://github.com/stnoonan/spnego-http-auth-nginx-module
Nginx 是使用 chef 配方通过包安装来安装的。
我尝试将模块编译为模块二进制 .so 文件并将其复制到 /etc/nginx/modules 目录并将以下行添加到 nginx.conf,但它显示错误 "unknown directive load_module"。
nginx.conf
load_module modules/ngx_http_auth_spnego_module.so ;
厨师食谱
bash 'create_spnego_module' do
code <<-EOH
mkdir -p #{node['nginx']['dir']}/modules
EOH
end
cookbook_file "#{node['nginx']['dir']}/modules/ngx_http_auth_spnego_module.so" do
source 'ngx_http_auth_spnego_module.so'
owner 'root'
group node['root_group']
mode '0644'
notifies :reload, 'service[nginx]', :delayed
end
有没有其他方法可以通过 chef 加载此模块而无需重新编译 nginx 源代码?
如评论所述,您的Nginx版本太旧,无法动态加载模块。您需要使用新模块重新编译它或安装新版本。
模块二进制编译时,编译模块的配置参数要和安装的nginx一致。
使用命令行参数 'nginx -V
' ,在 nginx 安装期间检查配置参数。在模块编译期间使用相同的参数。