doh: Модуль NGINX для обработки запросов DNS-over-HTTPS (DOH)
Установка на Debian/Ubuntu
Эти документы относятся к APT пакету nginx-module-doh, предоставляемому репозиторием GetPageSpeed Extras.
- Настройте APT репозиторий, как описано в настройке APT репозитория.
- Установите модуль:
sudo apt-get update
sudo apt-get install nginx-module-doh
Показать дистрибутивы и архитектуры
| Дистрибутив | Версия | Компонент | Архитектуры |
|-------------|--------------------|-------------|----------------|
| debian | bookworm | main | amd64, arm64 |
| debian | bookworm-mainline | main | amd64, arm64 |
| ubuntu | focal | main | arm64 |
| ubuntu | focal-mainline | main | arm64 |
| ubuntu | jammy | main | arm64 |
| ubuntu | jammy-mainline | main | arm64 |
| ubuntu | noble | main | arm64 |
| ubuntu | noble-mainline | main | arm64 |
Простой модуль Nginx для обработки запросов DNS-over-HTTPS (DOH).
CAVEAT EMPTOR: Этот модуль является экспериментальным, даже несмотря на то, что я успешно использовал его как с Firefox, так и с Curl, могут быть невыявленные ошибки. Передача зоны в настоящее время официально не поддерживается.
Проверено с версиями Nginx: 1.16.1 (стабильная) 1.17.6 1.17.7 (основная).
Инструкции по сборке, установке и использованию модулей Nginx можно найти по следующим ссылкам.
динамический: https://www.nginx.com/resources/wiki/extending/converting/#compiling-dynamic
статический: 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;
}