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

doh: Модуль NGINX для обработки запросов DNS-over-HTTPS (DOH)

Установка

Вы можете установить этот модуль в любой дистрибутив на базе 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-doh
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-doh

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

load_module modules/ngx_http_doh_module.so;

Этот документ описывает nginx-module-doh v0.1, выпущенный 15 января 2020 года.


Простой модуль Nginx для обработки запросов DNS-over-HTTPS (DOH).

CAVEAT EMPTOR: Этот модуль является экспериментальным, хотя я успешно использовал его как с Firefox, так и с Curl, могут быть невыявленные ошибки. Передача зон в настоящее время официально не поддерживается.

Тестировалось с версиями Nginx: 1.16.1 (стабильная) 1.17.6 1.17.7 (основная линия).

Инструкции по сборке, установке и использованию модулей Nginx можно найти по следующим ссылкам.

dynamic: https://www.nginx.com/resources/wiki/extending/converting/#compiling-dynamic

static: https://www.nginx.com/resources/wiki/extending/compiling/

Я включил файл конфигурации как для сборки в виде динамического, так и статического модуля.

Этот модуль можно использовать только в блоке http location.

ДИРЕКТИВЫ МОДУЛЯ

doh: (не принимает аргументов) включает DOH в этом блоке location, адрес upstream DNS сервера по умолчанию 127.0.0.1, порт по умолчанию 53, а таймаут по умолчанию 5 секунд.

doh_address: (принимает 1 аргумент) устанавливает адрес upstream DNS сервера, может быть как IPv4, так и IPv6.

doh_port: (принимает 1 аргумент) устанавливает порт для обращения к upstream DNS серверу (применимо как для TCP, так и для UDP соединений).

doh_timeout: (принимает 1 аргумент) устанавливает таймаут в секундах.

ПРИМЕРЫ

самый простой случай использования с upstream DNS сервером, слушающим на 127.0.0.1 на порту 53:

location /dns-query {
    doh;
}

установите upstream адрес 127.0.2.1, порт 5353 и таймаут 2 секунды:

location /dns-query {
    doh;
    doh_address 127.0.2.1;
    doh_port 5353;
    doh_timeout 2;
}

GitHub

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