nginx反向代理实现ipv6用户访问ipv4资源

前言

假设 Server A 上有一个ipv4的站点: a.ipv4.domain.com
不修改 A 的配置,添加一台支持ipv4和ipv6双栈的公网服务器B;
在 Server B 上通过nginx配置ipv6反向代理ipv4, 实现 ipv6用户访问ipv4资源;

Feature Server A Server B
address ipv4: 100.1.1.1
site: your.domain.com
ipv4: 100.1.1.2
ipv6: 2408:4005:30a:ce00:98b:29f6:6606:xxxx

域名配置

your.domain.com A 记录解析到 100.1.1.1
ipv4.your.domain.com A 记录解析到 100.1.1.1
your.domain.com AAAA 记录解析到 2408:4005:30a:ce00:98b:29f6:6606:xxxx

nginx 配置

这里nginx 只监听ipv6的端口
在 Server B部署 nginx

server {
listen [::]:80;
server_name localhost;

... # 其他配置

location / {
proxy_pass http://ipv4.your.domain.com;
}