阿里云服务器、oss遇上苹果ipv6审核(一)

公司app后端服务用阿里云服务器,图片和style存储在阿里云oss上,app主体采用webview加载h5。按照网上解决方案,服务器开启ipv6,注册tunnelbroker.net添加隧道,添加aaaa解析,dns更换成dns.he.net等提交苹果审核N次都过不了,都是因为ipv6无法访问。后来发狠解决,终于通过,下面记录下重点几条:

1. 后端服务器及域名

域名解析采用万网的(dns服务器不支持ipv6没关系),升级到企业版,勾选海外线路解析。

2. 配置海外服务器转发

在Linode上购买台5$的服务器,支持ipv6,机房选择美国的,安装nginx如下:

wget http://nginx.org/download/nginx-1.12.0.tar.gz

cd nginx-1.12.0

./configure --prefix=/usr/soft/install/nginx112 --with-ipv6 --with-http_stub_status_module --with-http_sub_module --add-module=/usr/soft/install/ngx_http_substitutions_filter_module

make

make install

配置如下:

server {

listen 80;

listen [::]:80;

server_name a.domain.cn;

   location / {

        proxy_pass      http://a.domain.cn;

   }

}

3.后端服务器添加aaaa记录解析到上面海外服务器

在http://ipv6-test.com/validate.php测试前面测试通过如下


阿里云服务器、oss遇上苹果ipv6审核(一)_第1张图片

4. oss style及图片转发

oss style及图片域名是cname到oss上,cname不能和aaaa同时共存,需要将oss绑定的域名c.domain.cn替换成另个域名cipv6.domain.cn,然后cipv6.domain.cn 解析aaaa记录到海外服务器,海外服务器在代理到oss c.domain.cn 上。具体解决方案如下:

4.1 在应用服务器ngixn上将响应内容c.domain.cn 全部替换成 cipv6.domain.cn,

subs_filter_types *;

subs_filter c.domain.cn  cipv6.domain.cn g;

proxy_pass http://jettyserver;

proxy_set_header Accept-Encoding "";


4.2 将cipv6.domain.cn 添加a和aaaa记录解析到 Linode海外服务器


4.3  在Linode海外服务器上配置代理到阿里云oss上,缓存需要开启下

server {

    listen 80;

    listen [::]:80;

   server_name cipv6.domain.cn;

  location / {

      proxy_cache cache_one;

      proxy_cache_valid  200 304 12h;

      proxy_cache_key $host$uri$is_args$args;

      proxy_pass      http://c.domain.cn;

      expires      1d;

  }

}

你可能感兴趣的:(阿里云服务器、oss遇上苹果ipv6审核(一))