我正在尝试将第三方模块动态加载到nginx。
https://github.com/stnoonan/spnego-http-auth-nginx-module
使用厨师食谱通过软件包安装来安装Nginx。
我尝试将模块编译为模块二进制.so文件,并将其复制到/ etc / nginx / modules目录,并将以下行添加到nginx.conf中,但显示错误“未知指令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源吗?
答案 0 :(得分:0)
如评论中所述,您的Nginx版本对于动态模块加载而言太旧了。您要么需要使用新模块重新编译它,要么需要安装新版本。
答案 1 :(得分:0)
在编译二进制模块时,用于编译模块的配置参数应与已安装的nginx的配置参数相同。
使用命令行参数'nginx -V
',在nginx安装期间检查配置参数。在模块编译期间使用相同的参数。