Estoy intentando usar nginx en mi VPS ( mydoamin.com
con registro A y AAAA) con una dirección IP estática pública (tanto IPv4 como IPv6) para crear un proxy de IPv4 a IPv6 para que se pueda acceder a un servidor doméstico solo IPv6 desde redes IPv4 normales. El registro A del dominio apunta directamente al servidor nginx y el registro AAAA al servidor doméstico solo IPv6.
Mi bloque de servidor nginx actual se ve así:
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;
}
}
Hasta ahora, el proxy funciona bastante bien y todo el tráfico a través de mydomain.com desde IPv4 será proxy mediante nginx, pero me pregunto si hay alguna manera deutilizar el dominio en lugar de la dirección IPv6Mientras proxy_pass
tanto, ¿nginx solo resolverá su registro AAAA? ¡Muchas gracias de antemano!
Respuesta1
Puedes hacer uso del ipv4=off
parámetro delresolver
directiva nginx.
Obliga a Nginx a ignorar los resultados de IPv4 del solucionador.
Un inconveniente es que se debe proporcionar una dirección IP de resolución a esta directiva: no puede simplemente deshabilitar IPv4 y mantener el solucionador ya configurado.
Supongamos que desea utilizar 8.8.8.8
(DNS público de Google), puede utilizar resolver 8.8.8.8 ipv4=off;
el FQDN original mydoamin.com
como host de su URL ascendente:
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;
}
}
Respuesta2
Nginx no resuelve, nombrado/bind lo hace. Nginx escucha y sirve.
listen 443 ssl http2;
no escuchaAF_INET6dirección de la familia, listen [::]:443 ssl http2;
lo hace.