Перейти к содержанию

ntlm: Модуль NTLM для NGINX

Установка

Вы можете установить этот модуль в любой дистрибутив, основанный на RHEL, включая, но не ограничиваясь:

  • RedHat Enterprise Linux 7, 8, 9 и 10
  • CentOS 7, 8, 9
  • AlmaLinux 8, 9
  • Rocky Linux 8, 9
  • Amazon Linux 2 и Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-ntlm
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-ntlm

Включите модуль, добавив следующее в верхней части файла /etc/nginx/nginx.conf:

load_module modules/ngx_http_upstream_ntlm_module.so;

Этот документ описывает nginx-module-ntlm v1.19.4, выпущенный 4 мая 2024 года.


Модуль NTLM позволяет проксировать запросы с использованием NTLM Authentication. Соединение с upstream связывается с клиентским соединением, как только клиент отправляет запрос с заголовком "Authorization", значение которого начинается с "Negotiate" или "NTLM". Последующие запросы клиента будут проксироваться через то же соединение с upstream, сохраняя контекст аутентификации.

Как использовать

Синтаксис: ntlm [connections]; По умолчанию: ntlm 100; Контекст: upstream

upstream http_backend {
    server 127.0.0.1:8080;

    ntlm;
}

server {
    ...

    location /http/ {
        proxy_pass http://http_backend;
        # следующие 2 настройки необходимы для правильной работы keepalive
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }
}

Параметр connections устанавливает максимальное количество соединений с upstream-серверами, которые сохраняются в кэше.

Синтаксис: ntlm_timeout timeout; По умолчанию: ntlm_timeout 60s; Контекст: upstream

Устанавливает тайм-аут, в течение которого неактивное соединение с upstream-сервером будет оставаться открытым.

Тесты

Чтобы запустить тесты, вам необходимо установить nodejs и perl на вашу систему.

## установить тестовый фреймворк
cpan Test::Nginx

## установить путь к вашему местоположению nginx
export PATH=/opt/local/nginx/sbin:$PATH

prove -r t

GitHub

Вы можете найти дополнительные советы по конфигурации и документацию для этого модуля в репозитории GitHub для nginx-module-ntlm.