背景

原理很简单,就是nginx做ipv6反向代理,但我觉得潜力巨大。

动机

实际上本来是打算折腾校园网ipv4做DDNS的,无奈校园网把公网IP加了NAT,想必公网不可能通过ipv4访问到我的电脑了。

但作为校园网的一大利好就是有免费且带宽够大的ipv6可以用,正好手头上有个性能严重不足的但支持ipv6网络的VPS可以用,遂计划用有公网ipv4地址的VPS通过ipv6做反向代理,映射回我的电脑。

实践

设置DNS

在DNS服务商上新增一个二级域名,指向VPS的ipv4地址(实际上也可以不用,只要nginx能够正确进行反向代理)。

dns.png

设置本地服务器

设置本地服务器监听整个本地网络(因为用的windows直接就配置IIS了)

iis.png

设置反向代理

找到自己本地的ipv6地址

ipconfig.png

编辑远程服务器nginx的配置文件。建立一个新server,并配置反向代理到本地电脑的ipv6地址

server {
    listen 80;
    server_name test.polarxiong.com;

    location / {
        proxy_pass http://[2001:250:5002:8100::1:7214];
    }
}

生效

重启nginx

接下来访问http://test.polarxiong.com/

local.png

实际就是访问到的本地IIS的内容了。

潜在问题

这样配置反向代理大概最关心的就是加载速度了,因为我的VPS在美国,所以我的访问每次都相当于穿越了4次太平洋,但我测试从发送请求到加载完毕一共花了大约1秒的时间,效果已经很好了,可能就是因为用到了ipv6。

未来计划

关于具体可行的应用现在还没有,但我已经在考虑入手树莓派了,目的嘛,很明显:)