Estou tentando usar o nginx no meu VPS ( mydoamin.com
com registro A e AAAA) com endereço IP estático público (IPv4 e IPv6) para criar um proxy IPv4 para IPv6 para tornar um servidor doméstico somente IPv6 acessível a partir de redes IPv4 normais. O registro A do domínio aponta diretamente para o servidor nginx e o registro AAAA para o servidor doméstico somente IPv6.
Meu bloco de servidor nginx atual é assim:
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;
}
}
Até agora, o proxy funciona muito bem e todo o tráfego via mydomain.com do IPv4 será proxy pelo nginx, mas estou me perguntando se existe uma maneira deuse o domínio em vez do endereço IPv6enquanto isso, proxy_pass
o nginx resolverá apenas seu registro AAAA? Muito obrigado antecipadamente!
Responder1
Você pode fazer uso do ipv4=off
parâmetro doresolver
Diretiva Nginx.
Força o Nginx a ignorar os resultados IPv4 do resolvedor.
Uma desvantagem é que um endereço IP do resolvedor deve ser fornecido para esta diretiva: você não pode apenas desabilitar o IPv4 e manter o resolvedor já configurado.
Digamos que você queira usar 8.8.8.8
(DNS público do Google), você pode usar resolver 8.8.8.8 ipv4=off;
o FQDN original mydoamin.com
como host do seu URL upstream:
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;
}
}
Responder2
Nginx não resolve, nomeado/bind faz isso. Nginx escuta e serve.
listen 443 ssl http2;
não escutaAF_INET6abordar a família, listen [::]:443 ssl http2;
faz.