通过Chef

时间:2018-09-20 19:14:38

标签: nginx chef kerberos spnego

我正在尝试将第三方模块动态加载到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源吗?

2 个答案:

答案 0 :(得分:0)

如评论中所述,您的Nginx版本对于动态模块加载而言太旧了。您要么需要使用新模块重新编译它,要么需要安装新版本。

答案 1 :(得分:0)

在编译二进制模块时,用于编译模块的配置参数应与已安装的nginx的配置参数相同。

使用命令行参数'nginx -V',在nginx安装期间检查配置参数。在模块编译期间使用相同的参数。