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.