让Nginx支持ipv6,以LNMP为例【原创】

“ipv6时代”从当初的“狼来了”,到现在真的为大家所重视已经有段时间了。现在已经有越来越多的网站,特别是像偶们这些闷骚的IT类小网站已经迫不及待的迁移到ipv6的怀抱了。本文将简单指引大家如何在LNMP下,让Nginx支持ipv6。因为微魔对这方面也钻研不深,因此如有错漏之处请大家批评指正哈~

让Nginx支持ipv6,以LNMP为例

本文是以军哥的LNMP 0.7为例搭建的环境,由于新版已经默认支持了ipv6模块,所以,这里我们无需多余的编译,直接修改conf配置文件即可!如果你的VPS不支持ipv6也可以使用HE为大家免费提供的TunnelBroker

1.用vi命令,将“注意事项”中的全部配置文件的server段中的listen,均修改成ip:80的形式(ipv6地址需要用[括起来])

server
{
listen 205.185.117.232:80;
 listen [2607:f358:1:fed5:5:0:538:7]:80;
 listen [2607:f358:1:fed5:5:0:538:8]:80;
 listen [2607:f358:1:fed5:5:0:538:9]:80;
server_name vps.vmvps.com;
index index.html index.htm index.php;
root /home/wwwroot;
....省略...
}

注意事项:修改conf配置文件是指修改所有网站的conf文件,包括

/usr/local/nginx/conf/nginx.conf
/usr/local/nginx/conf/vhost/域名1.conf
/usr/local/nginx/conf/vhost/域名2.conf

否则,将有可能出现如下错误:

[emerg]: bind() to [2607:f358:1:fed5:5:0:538:7]:80 failed (98: Address already in use)
[emerg]: bind() to [2607:f358:1:fed5:5:0:538:8]:80 failed (98: Address already in use)
[emerg]: bind() to [2607:f358:1:fed5:5:0:538:9]:80 failed (98: Address already in use)

2.执行以下命令,查看Nginx配置是否正确

/usr/local/nginx/sbin/nginx -t

若返回以下结果则正确

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful

3.重启Nginx生效;

killall nginx
/usr/local/nginx/sbin/nginx

4.此外,你还应该做,其实应该先做的就是让你的域名DNS的AAAA记录绑到相应的ipv6地址上,如果你的域名商不支持AAAA(不大可能了吧~),可以选择DNSPOD。

注意:绑定AAAA记录时,和绑A记录一样,域名本身和他的“www”都要绑上哦~(除非你只想绑二级域名~)

最后,如何验证你的ipv6绑定成功了呢?呵呵,不用下载什么软件了。在你的网址后面加上.ipv4.sixxs.org,如https://www.vmvps.com.ipv4.sixxs.org,进行访问,如果能正常看到网站,你的网站则已经支持ipv6的访问鸟~

猜你 喜欢

关于作者: 微魔

小微魔,大智慧!

多条评论

  1. 博主,这么深奥的东西我不懂啊。
    我又来看看你博客更新了没有呢, 上次你说帮我整理老外支持支付宝付款的VPS 但是没有见踪影哦。

    你介绍的这些我 要怎么买呢? 有哪些可以用到支付的 多介绍一些好吗

    1. ipv6和ipv4是两个概念,目前没有SEO与ipv6相关的经验。ipv6相对增加了一个访问通道而已,具体可以百度看更多的相关内容~

  2. 发现如果按照你这种方法会出现,99错误,也就是说我ipv4跟ipv6需要同时监听,会提示已经被占用错误!请问lz是怎么解决的?按照你这配置,

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注