Я пытаюсь настроить базовую 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.