Назад | Перейти на главную страницу

nginx не распознает директиву auth_pam

Я пытаюсь настроить базовую HTTP-аутентификацию, используя учетные данные системы Linux с помощью pam. Я установил пакет nginx-extras и вижу, что динамический модуль pam загружается в nginx. Мой вывод "nginx -V" содержит следующее:

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

Я создал файл nginx в /etc/pam.d, который просто содержит:

@include common-auth

Файл с поддержкой моих сайтов в / etc / nginx выглядит так:

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/

Смотрел онлайн и здесь, но не нашел никаких подсказок. Кто-то предположил, что дополнительные символы новой строки могут быть проблемой, но не похоже.

Любые предложения о том, что мне здесь не хватает.

Версия 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.