阿里云(CentOS 7.2)+Nginx配置支持IPV6

时间:2024-04-01 07:36:32

这两天IOS上架遇到一个问题,AppStore要求必须支持IPv6,这个问题令不少人脑仁疼,结合这两天不断的尝试,现将配置过程总结如下,亲测可用!

若要满足AppStore要求应用支持IPV6需确保两点:
1、待上架的APP应用支持IPV6(这个交由IOS开发人员搭建本地IPV6环境去调试);
2、应用服务器具备支持IPV6(也就是应用部署的服务器)的网络环境。
本文只讲述第2个满足条件。

一、阿里云配置
1、编辑 vim /etc/modprobe.d/disable_ipv6.conf文件(需要root权限) 
disable 设置成 0
阿里云(CentOS 7.2)+Nginx配置支持IPV6
2、编辑 vim /etc/sysconfig/network 文件(需要root权限) 
NETWORKING_IPV6 设置成 yes
阿里云(CentOS 7.2)+Nginx配置支持IPV6
然后执行service network restart重启
3、编辑vim /etc/sysctl.conf 文件(需要root权限)
阿里云(CentOS 7.2)+Nginx配置支持IPV6
然后运行sysctl -p 的命令,启用IPv6 (需要root权限)
4、验证是否开启IPV6
执行命令ip addr查看是否已经有 inet6 的地址,如果有说明已经开启ipv6
阿里云(CentOS 7.2)+Nginx配置支持IPV6

二、IPV6隧道配置
1、https://tunnelbroker.net注册并登陆;
2、左侧点击Create Regular Tunnel创建一个隧道规则===>IPv4 Endpoint 需要些服务器的外网IP地址===>选择一个隧道服务器===>这里选择了“亚洲香港”
阿里云(CentOS 7.2)+Nginx配置支持IPV6

查看Tunnel信息
阿里云(CentOS 7.2)+Nginx配置支持IPV6
红框里面的 Client IPv6 Address 就是你的IPv6 地址,之后解析域名(AAAA解析)的时候用的就是它(域名里不用写“/64”)
配置信息
阿里云(CentOS 7.2)+Nginx配置支持IPV6
重点:选择IP的方式设置(这里选择的是Linux-route2),然后将文本框中local IP需改成内网IP(这两个IP在阿里云后台都能看到),复制文本框中的内容到CentOS环境下执行。
3、执行命令ping6 he.net
阿里云(CentOS 7.2)+Nginx配置支持IPV6
能ping通说明已经配置成功。
4、配置DNS解析,将域名指向IPV6的地址即可,需要用AAAA记录 
AAAA xxxx 2001:xxxxx 即:AAAA 访问前缀 IPV6地址
解析之后可以用 wget -6 http://xxxxxxx 来验证你的解析是否正确以及IPV6是否成功。如果能获取到网页信息,说明一切正常。(https同理)

三、Nginx配置
1、nginx开启IPV6支持配置
到nginx的sbin目录,cd /usr/local/nginx/sbin,执行命令./nginx -V
阿里云(CentOS 7.2)+Nginx配置支持IPV6
若没有出现--with-ipv6,说明当前的nginx不支持ipv6,我们需要重新编译Nginx,配置里面增加--with-ipv6
2、重新编译Nginx
1)解压Nginx安装包: tar xvzf nginx-1.10.3.tar.gz
2)跳转到解压过后的目录:cd nginx-1.10.3
3)执行命令配置新的参数,加入 ipv6模块,命令如下:
./configure \--prefix=/usr/local/nginx \--pid-path=/var/run/nginx/nginx.pid \--lock-path=/var/lock/nginx.lock \--error-log-path=/var/log/nginx/error.log \--http-log-path=/var/log/nginx/access.log \--with-http_gzip_static_module \--http-client-body-temp-path=/var/temp/nginx/client \--http-proxy-temp-path=/var/temp/nginx/proxy \--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \--http-scgi-temp-path=/var/temp/nginx/scgi \
--with-ipv6 \
--with-http_ssl_module
4)配置完毕后,执行make 命令,重新编译
5)编译完毕后,会在当前目录下创建objs目录,新的nginx执行文件将生成在该目录中,替换nginx执行文件,执行以下命令:
./nginx -s stop#关闭Nginx
cp objs/nginx /usr/local/nginx/sbin#覆盖原有Nginx执行文件
./nginx#启动Nginx
./nginx -V#检查nginx是否已经支持ipv6
3、nginx配置ipv6监听
vim /usr/local/nginx/conf/nginx.conf
添加一条:listen [::]:80 ipv6only=on;
阿里云(CentOS 7.2)+Nginx配置支持IPV6
重新加载Nginx配置文件:
./nginx -s reload

四、测试IPV6
打开网站http://ipv6-test.com/validate.php,输入完整域名
阿里云(CentOS 7.2)+Nginx配置支持IPV6
测试结果如下:
阿里云(CentOS 7.2)+Nginx配置支持IPV6

说明应用服务器已具备支持IPV6的网络环境