让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.zhaosifang.net.ipv4.sixxs.org,进行访问,如果能正常看到网站,你的网站则已经支持ipv6的访问鸟~

找四方资源网,版权所有丨如未注明,均为原创丨本网站采用BY-NC-SA协议进行授权,转载请注明本文固定链接
喜欢 ()or分享