公司app后端服務(wù)用阿里云服務(wù)器,圖片和style存儲(chǔ)在阿里云oss上茵典,app主體采用webview加載h5湘换。按照網(wǎng)上解決方案,服務(wù)器開(kāi)啟ipv6,注冊(cè)tunnelbroker.net添加隧道统阿,添加aaaa解析彩倚,dns更換成dns.he.net等提交蘋果審核N次都過(guò)不了,都是因?yàn)閕pv6無(wú)法訪問(wèn)扶平。后來(lái)發(fā)狠解決帆离,終于通過(guò),下面記錄下重點(diǎn)幾條:
1. 后端服務(wù)器及域名
域名解析采用萬(wàn)網(wǎng)的(dns服務(wù)器不支持ipv6沒(méi)關(guān)系)结澄,升級(jí)到企業(yè)版哥谷,勾選海外線路解析。
2. 配置海外服務(wù)器轉(zhuǎn)發(fā)
在Linode上購(gòu)買臺(tái)5$的服務(wù)器麻献,支持ipv6们妥,機(jī)房選擇美國(guó)的,安裝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.后端服務(wù)器添加aaaa記錄解析到上面海外服務(wù)器
在http://ipv6-test.com/validate.php測(cè)試前面測(cè)試通過(guò)如下
4. oss style及圖片轉(zhuǎn)發(fā)
oss style及圖片域名是cname到oss上勉吻,cname不能和aaaa同時(shí)共存监婶,需要將oss綁定的域名c.domain.cn替換成另個(gè)域名cipv6.domain.cn,然后cipv6.domain.cn 解析aaaa記錄到海外服務(wù)器,海外服務(wù)器在代理到oss c.domain.cn 上惑惶。具體解決方案如下:
4.1 在應(yīng)用服務(wù)器ngixn上將響應(yīng)內(nèi)容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海外服務(wù)器
4.3? 在Linode海外服務(wù)器上配置代理到阿里云oss上,緩存需要開(kāi)啟下
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;
? }
}