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

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

Установка на Debian/Ubuntu

Эти документы относятся к пакетам APT nginx-module-ntlm, предоставляемым репозиторием GetPageSpeed Extras.

  1. Настройте APT-репозиторий, как описано в настройке APT-репозитория.
  2. Установите модуль:
sudo apt-get update
sudo apt-get install nginx-module-ntlm
Показать дистрибутивы и архитектуры
| Дистрибутив | Версия            | Компонент   | Архитектуры    |
|-------------|-------------------|-------------|-----------------|
| debian      | bookworm          | main        | amd64, arm64    |
| debian      | bookworm-mainline | main        | amd64, arm64    |
| debian      | trixie            | main        | amd64, arm64    |
| debian      | trixie-mainline   | main        | amd64, arm64    |
| ubuntu      | focal             | main        | amd64, arm64    |
| ubuntu      | focal-mainline    | main        | amd64, arm64    |
| ubuntu      | jammy             | main        | amd64, arm64    |
| ubuntu      | jammy-mainline    | main        | amd64, arm64    |
| ubuntu      | noble             | main        | amd64, arm64    |
| ubuntu      | noble-mainline    | main        | amd64, arm64    |

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

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

Синтаксис: ntlm [соединения];
Значение по умолчанию: 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 "";
    }
}

Параметр соединения устанавливает максимальное количество соединений с серверами 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