苹果公司APPstore早在2016年就开始要求应用上线必须支持ipv6-only。ios app审核需要抽查是否支持ipv6很多审核被退回,而国内目前除了教育网之外还没有使用到ipv6环境,这里提供一种思路,比较简便地实现ipv6.
主要实现目的:
不需要改动源码(但原有框架已经支持ipv6情况下);
审核期间仍然能够正常使用不影响ipv4环境用户;
代理服务器不使用ssl证书。但访问仍然为https方式(后端原有服务器需要有安装ssl证书);
注意:审核期间不支持CDN
####一. 注册虚拟机一台该云主机需要支持ipv4和ipv6,ipv4主要使用来连接的如果你本地没有ipv6环境云主机不支持ipv4你无法连接过去设置。
注册可以选用AWS(国外)或者vultr。vultr云主机相对便宜,只要2.5美元一个月,购买的时候注意选择支持ipv6选项并选择linux。
####二. ssh进入云主机并安装必要软件 ######a. 安装dig工具
#yum -y install bind-utils
b. 安装haproxy代理
#yum -y install haproxy
######c. 关闭防火墙
#systemctl stop firewalld#systemctl disable firewalld
####三. 配置haproxy代理,采用http模式(7层)或者tcp模式(4层),我这采用tcp模式
global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon # turn on stats unix socket stats socket /var/lib/haproxy/stats defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000#以上为默认#80端口可以不用,按照实际情况,我这里只用443端口你可以8个都开启 listen test1 #bind必须绑定ipv6地址 bind [2001:19f0:9002:3c2:5400:ff:fe72:ceee]:443 #ssl mode tcp #域名改为你服务器的域名或者ip,全部指向正式服务器地址 server app1 home.example.com:443 check #listen test2 # bind [2001:19f0:9002:3c2:5400:ff:fe72:ceee]:80 #mode tcp #server app1 home.example.com:80 check
####四. 启动haproxy并查询是否打开了443端口
#systemctl start haproxy #启动haproxy#systemctl status haproxy #查看是否启动#ll -lntp #检查是否打开了443端口
####五. 修改域名解析
1. 首先注意备份原来的域名解析,后期审核通过后需要修改回来
2. 域名解析方法
- 添加2个相同的域名(我这里称之为A域名) 其中一个为A解析,指向正式服务器(一般和上面回源地址相同) 另一个为AAAA解析(为新注册云主机ipv6地址)- 把原来需要的域名(app审核的域名)改为CNAME解析,解析到1中添加的域名(也就是A域名)
3. 示例
名称 | 解析类型 | 主机 |
---|---|---|
A | A | IPV4 |
A | AAAA | IPV6 |
APP(审核域名) | CNAME | A |
####六. 检查域名解析是否成功,如果有条件,可以使用另外一台云主机进行 用dig解析一下app需要审核的域名是否有2个解析ip,分别为ipv4和ipv6. dig example.com dig example.com aaaa *也可以在windows下使用nslookup查看是否能解析出2个ip(如下图)
用ping6(linux下)看一下是否ping的是ipv6地址; 用ping看一下ping的是否为ipv4地址; 用curl -v url 看一下信息是否正确(如果是https那么看一下是否证书正确)
####七. 结束 ######1. 如果以上设置都正确,那么在ipv4环境下的电脑访问会自动解析ipv4地址直接访问正式服务器;如果在ipv6环境下访问那么会自动解析ipv6地址,并通过云主机反向代理访问(速度国内会慢一点);
2. 这样就可以不影响用户的情况下,又能通过app的审核,国内基本没有ipv6环境,即使教育网在出口也基本都会改成ipv4方式(否则国内绝大部分网站都打不开),所以也都会直接从服务器访问不影响速度。
3. 如果审核通过请及时还原原来的域名解析
4. 该方法除了域名解析几乎不影响原有配置和源码
####七.验证网站是否已支持IPV6 测试地址:http://ipv6-test.com/validate.php
本文章转载自作者:Ricky(564001002@qq.com)
北京万维网作为阿里云北京授权代理商,为广大企业用户提供实惠的阿里云服务器价格,稳定可靠的ipv4到ipv6改造等上云解决方案和周到技术支持服务,如果您企业需要在云服务器上部署应用、网站,或迁移上云,欢迎联系北京万维网客服。电话:18601095105、QQ 442956988
微信: