实战经验分享:网站域名支持ipv6之nginx配置

七海恋空 2020-11-27 浏览(0 评论(0

ipv6在中国提了好几年了,可我们现在的宽带ipv6的毛都没看见。各大网站为了赶潮流,都开始要求网站支持ipv6访问了。这不,领导下命令了,本周之前要让网站支持ipv6网络。我去,今天不就是最后一天么。

之前我没有给nginx配置过ipv6的经历,但也不怵这个,不会就百度呗!其实还挺简单的。首先要确认nginx是否支持ipv6网络,是否安装了ipv6模块。远程Linux服务器,输入命令/usr/local/nginx/sbin/nginx -V查看nginx版本。命令行返回结果末尾有“--with-ipv6”字样就算是支持了。还好不算太坑,现成的nginx支持ipv6,要不然还得重装,今天就别回去了。

然后就是修改nginx配置文件,sever_name改一下,改成自己要绑定的域名。listen改一下,增加一行listen [::]:80;。最后改完就有2个listen,就相当于既支持ipv4又支持ipv6。改完重启一下nginx就算大功告成。

本来挺简单的一个配置,但事情不简单啊。为什么呢?配置完了不生效啊!然后我和网络那边的同事就开始抓瞎了。我得证明我配置的没问题,他得证明他网络没问题。关键是我这没有ipv6网络,没法测试。他那边有ipv6网络,测试域名解析正常,但是网站打不开,看不到nginx欢迎页。另外单说一句,手机是支持ipv6的,可以通过手机访问支持ipv6的网站。比如http://ipv6.baidu.com/这个网站,大家都熟悉吧。

我心里比较虚,问题十有八九是出在我这儿,其实我们双方都不太懂这个ipv6,都在查找原因。首先看看网络那边说的ipv6地址对不对。我输入ifconfig命令,结果提示不支持该命令。我晕,又是极简版Linux系统,用yum安装,结果发现未联网。于是我拿服务器没联网说事,结果人家说是ipv4没接外网,ipv6接了外网,我直接被怼死。

碰到没有网络,用不了yum安装怎么办?可以开一个虚拟机,下一个net-tools的rpm包,然后把包传到服务器上,安装就行了。使用命令yum install --downloadonly --downloaddir=/home/software/ net-tools就可以在虚拟机下载自己想要的rpm包,当然Linux版本最好一样。

好不容易,net-tools安装好了,ifconfig总算可以运行了。查了一下ip地址,人家ipv6地址给的没错。ping一下看看通不通,结果又发现这个ipv6地址还不能用ping命令,得用ping6这个命令,又涨知识了。ping6 ipv6地址没问题,但换成域名就不行了。估计是DNS的问题,配置下服务器的host吧。配置一下host,然后通过wget命令获取网站首页,我本来是这么打算弄的,这样能证明我配置的nginx没问题,到时候也有的说。结果人家打电话来说域名能正常访问了,我用手机打开一看,果不其然,真是见鬼了。