Skip to content

Instantly share code, notes, and snippets.

@oskapt
Created October 6, 2019 13:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oskapt/5ca34fc551119fdb0cbed97d68ec9c36 to your computer and use it in GitHub Desktop.
Save oskapt/5ca34fc551119fdb0cbed97d68ec9c36 to your computer and use it in GitHub Desktop.
DoH Proxy Config
##
# Individual DoH server entries, one server per resolver.
# These establish proxy ports that the upstream resolvers
# can be reached via.
##
server {
listen 8001 default_server;
server_name _;
location / {
proxy_pass https://dns.google;
add_header X-Resolved-By $upstream_addr always;
}
}
server {
listen 8002 default_server;
server_name _;
location / {
proxy_pass https://cloudflare-dns.com;
add_header X-Resolved-By $upstream_addr always;
}
}
server {
listen 8003 default_server;
server_name _;
location / {
proxy_pass https://doh.opendns.com;
add_header X-Resolved-By $upstream_addr always;
}
}
server {
listen 8004 default_server;
server_name _;
location / {
proxy_pass https://dns.quad9.net;
add_header X-Resolved-By $upstream_addr always;
}
}
##
# Aggregate our resolver proxies into a single upstream
##
upstream dohproviders {
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
server 127.0.0.1:8004;
}
server {
listen 80 default_server;
root /srv/proxy_static;
##
# Actual DNS endpoint
##
location /dns-query {
proxy_pass http://dohproviders;
}
##
# Secondary ".well-known" endpoint
##
location /.well-known/dns-query {
rewrite ^/\.well-known/(.*) /$1 break;
proxy_pass http://dohproviders;
}
##
# Default greeting page for web browsers
##
location / {
index index.html;
}
}
# Expose NGINX status endpoint
server {
listen 8080;
server_name health;
location / {
stub_status on;
access_log off;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment