Ajouter le chapitre sur NGINX Reverse proxy

This commit is contained in:
2024-07-01 23:53:58 +02:00
parent 5deb3032ee
commit 2c5b689180

View File

@@ -734,7 +734,54 @@ framasoft.org. 3600 IN AAAA 2a01:4f8:141:3421::212
Total elapsed time: 0.04 seconds (41.83 ms/request)
```
# Partie V - Utilisez votre résolveur
# Partie V - NGINX Reverse proxy
Il est possible d'utiliser NGINX pour diriger le flux vers le serveur DoH en local. Pour ce faire, modifier le fichier dnsdist.conf comme ci.
```
-- Create local DOH server listener in DNS over HTTPS mode, otherwise the information coming from nginx won't be processed well (see nginx conf)
addDOHLocal('0.0.0.0:5300', nil, nil, '/', { reusePort=true })
addDOHLocal('[::]:5300', nil, nil, '/', { reusePort=true })
```
Le serveur écoute sur le port 5300
Du côté NGINX, créer un fichier de configuration pour le proxy reverse
```
pstream dns-backend {
server 127.0.0.1:5300;
keepalive 30;
}
server {
listen 443 ssl http2;
listen \[::\]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/dns.adriatis.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/dns.adriatis.org/privkey.pem;
ssl_dhparam /etc/nginx/ssl/server.dhparam;
server_name <nom_du_serveur_doh>;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 86400;
grpc_pass grpc://dns-backend;
}
}
```
Ici on utilise grpc_pass grpc://dns-backend parce qu'à partir de la version 1.9 de dnsdist, il n'y a plus de support HTTP/1 mais HTTP/2. Or, NGINX ne supporte que HTTP/1. La solution de contournement consiste à utiliser grpc_pass.
# Partie VI - Utilisez votre résolveur
Vous voilà désormais en possession d'un résolveur DoT/DoH public.