nginx 似乎无法识别“auth_pam”指令

nginx 似乎无法识别“auth_pam”指令

我正在尝试使用 pam 的 linux 系统凭据设置基本 http 身份验证。我安装了 nginx-extras 包,我可以看到 pam 动态模块正在加载到 nginx 中。我的“nginx -V”输出包含以下内容:

--add-dynamic-module=/build/nginx-STHBxL/nginx-1.10.1/debian/modules/nginx-auth-pam

我在 /etc/pam.d 中创建了一个 nginx 文件,其中仅包含:

@include common-auth

/etc/nginx 下的 sites-enabled 文件如下所示:

server { listen 80; server_name localhost; root /home/admin/Apps/seaWeb; location /{ auth_pam "Secure Zone"; auth_pam_service_name "nginx"; try_files $uri $uri/ /index.html; } }

现在,每当我尝试重新启动 nginx 时,我都会不断从错误日志中收到此信息:

2016/12/07 12:35:10 [emerg] 2980#2980: unknown directive "auth_pam" in /etc/nginx/sites-enabled/seaWeb:1

我基本上尝试遵循这里的所有说明: http://www.doublecloud.org/2014/01/nginx-with-pam-authentication/

在网上和这里都查过了,但没找到任何线索。有人说额外的换行符可能是个问题,但看起来并非如此。

对于我在这里遗漏的内容,有什么建议吗?

答案1

nginx 1.10 版本现在支持可加载模块。如果您安装 libnginx-mod-http-auth-pam 包,您将获得 auth_pam 模块。

因此,您需要执行以下操作:

sudo apt-get install libnginx-mod-http-auth-pam
sudo ln -s /usr/share/nginx/modules-available/mod-http-auth-pam.conf /etc/nginx/modules-enabled/50-mod-http-auth-pam.conf
# Add 'include /etc/nginx/modules-enabled/*.conf;' near the top of /etc/nginx/nginx.conf if it isn't there already
sudo systemctl restart nginx

这将安装模块并将其配置为在 nginx 启动时加载。

相关内容