hns_doh_loadbalancer/nginx.conf

54 lines
1.7 KiB
Nginx Configuration File
Raw Normal View History

2023-12-15 14:29:49 +11:00
upstream loadbalancer {
2023-12-15 14:53:49 +11:00
server doh.hnshosting.au:443 weight=1 max_fails=1 fail_timeout=30s;
server easyhandshake.com:8053 weight=1 max_fails=1 fail_timeout=30s;
server doh.hnsdns.com:443 weight=1 max_fails=1 fail_timeout=30s;
server hs.dnssec.dev:443 weight=1 max_fails=1 fail_timeout=30s;
server hnsns.net:443 weight=1 max_fails=1 fail_timeout=30s;
2023-12-15 14:29:49 +11:00
}
2023-12-15 14:53:49 +11:00
map $host $upstream {
~^doh\.hnshosting\.au$ doh.hnshosting.au;
~^easyhandshake\.com$ easyhandshake.com;
~^doh\.hnsdns\.com$ doh.hnsdns.com;
~^hs\.dnssec\.dev$ hs.dnssec.dev;
~^hnsns\.net$ hnsns.net;
}
2023-12-15 14:29:49 +11:00
server {
listen 80;
2023-12-15 14:34:37 +11:00
server_name _;
2023-12-15 14:29:49 +11:00
location / {
2023-12-15 15:03:56 +11:00
# Dynamically set the Host header based on the chosen upstream
set $upstream_host "";
if ($host ~* ^doh\.hnshosting\.au$) {
set $upstream_host doh.hnshosting.au;
}
if ($host ~* ^easyhandshake\.com$) {
set $upstream_host easyhandshake.com;
}
if ($host ~* ^doh\.hnsdns\.com$) {
set $upstream_host doh.hnsdns.com;
}
if ($host ~* ^hs\.dnssec\.dev$) {
set $upstream_host hs.dnssec.dev;
}
if ($host ~* ^hnsns\.net$) {
set $upstream_host hnsns.net;
}
proxy_pass https://dynamic_upstream;
}
2023-12-15 14:53:49 +11:00
2023-12-15 15:03:56 +11:00
location @dynamic_upstream {
# Use a named location to set proxy_pass dynamically
proxy_pass https://$upstream_host;
2023-12-15 14:53:49 +11:00
proxy_ssl_verify off;
2023-12-15 14:29:49 +11:00
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
2023-12-15 14:34:37 +11:00
add_header X-Load-Balancer-Node $upstream_addr;
2023-12-15 14:29:49 +11:00
}
}