Ich versuche, nginx auf meinem VPS ( mydoamin.com
mit A- und AAAA-Eintrag) mit öffentlicher statischer IP-Adresse (sowohl IPv4 als auch IPv6) zu verwenden, um einen IPv4-zu-IPv6-Proxy zu erstellen, der einen Nur-IPv6-Heimserver von normalen IPv4-Netzwerken aus erreichbar macht. Der A-Eintrag der Domäne verweist direkt auf den nginx-Server und der AAAA-Eintrag auf den Nur-IPv6-Heimserver.
Mein aktueller Nginx-Serverblock sieht folgendermaßen aus:
server {
listen 443 ssl http2;
server_name mydomain.com;
ssl_certificate /etc/letsencrypt/live/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/key.pem;
ssl_trusted_certificate /etc/letsencrypt/live/ca.pem;
location / {
proxy_pass https://[IPv6 address of the home server];
proxy_set_header Host $host;
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;
}
}
Bisher funktioniert der Proxy recht gut und der gesamte Datenverkehr über mydomain.com von IPv4 wird von nginx geproxied, aber ich frage mich, ob es eine Möglichkeit gibt,Verwenden Sie die Domäne anstelle der IPv6-Adressewährenddessen proxy_pass
löst Nginx nur seinen AAAA-Eintrag auf? Vielen Dank im Voraus!
Antwort1
Sie können den ipv4=off
Parameter desresolver
Nginx-Richtlinie.
Es zwingt Nginx, IPv4-Ergebnisse vom Resolver zu ignorieren.
Ein Nachteil besteht darin, dass dieser Anweisung eine Resolver-IP-Adresse zugewiesen werden muss: Sie können nicht einfach IPv4 deaktivieren und den bereits konfigurierten Resolver beibehalten.
Angenommen, Sie möchten 8.8.8.8
(Google Public DNS) verwenden. Dann können Sie resolver 8.8.8.8 ipv4=off;
den ursprünglichen FQDN mydoamin.com
als Host Ihrer Upstream-URL verwenden:
server {
listen 443 ssl http2;
server_name mydomain.com;
ssl_certificate /etc/letsencrypt/live/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/key.pem;
ssl_trusted_certificate /etc/letsencrypt/live/ca.pem;
location / {
resolver 8.8.8.8 ipv4=off;
proxy_pass https://mydoamin.com;
proxy_set_header Host $host;
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;
}
}
Antwort2
Nginx führt keine Auflösung durch, das macht named/bind. Nginx hört zu und bedient.
listen 443 ssl http2;
hört nicht zuAF_INET6Adresse Familie, listen [::]:443 ssl http2;
tut.