首页 > 解决方案 > 通过 chef 动态加载 nginx 第三方模块

问题描述

我正在尝试将第三方模块动态加载到 nginx。

https://github.com/stnoonan/spnego-http-auth-nginx-module

Nginx 是通过使用 chef recipe 安装包安装的。

我尝试将模块编译为模块二进制 .so 文件并将其复制到 /etc/nginx/modules 目录并将以下行添加到 nginx.conf 中,但它显示错误“未知指令加载模块”。

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

有没有其他方法可以通过厨师加载这个模块而无需重新编译 nginx 源代码?

标签: nginxchef-infrakerberosspnego

解决方案


正如评论中提到的,您的 Nginx 版本对于动态模块加载来说太旧了。您要么需要使用新模块重新编译它,要么安装新版本。


推荐阅读