WEB-DL

让LNMP安装的Nginx支持网站监听IPv6

一直没有捣鼓网站支持ipv6,因为懒,二来也不是刚需,结果6月初被GFW莫名其妙的墙了阿里云新加坡机器,应该是躺枪了,毕竟博客也没放什么不良文章。被墙了之后又迁移网站到腾讯云的成都机器上,TNND结果前几天腾讯开始阻断443了,不备案直接嗝屁,刚开始还以为是自己迁移过程中损坏了配置文件,想想也没改啥啊,然后怀疑是服务器一些环境和lnmp配置错了,由于这破机器经常拿来测试,干脆重装一下系统得了,捣鼓了一下还是老样子,到loc和v2看了一下帖子,发现腾讯开始阻断443了,再也不是“良心云”了,不备案都不让用443端口解析网站了。没辙了,又不想花钱买新的小鸡鸡,就想着要么利用一下被关小黑屋的一些机器的v6,结果今天中午还是遇到了一些问题,主要是nginx编译安装时报错 “ ./configure: warning: the “–with-ipv6” option is deprecated” ,查了一下军哥的论坛文章,发现其实lnmp高版本安装的nginx默认支持v6。

一、为Nginx添加IPv6模块

因为LNMP高版本脚本编译安装的nginx默认支持ipv6,所以不必纠结nginx -V查看的结果是否有 “–with-ipv6”,如果是其他方案编译安装的nginx,可以先尝试编译过程中加入 “–with-ipv6”
1、首先进入nginx源码的解压目录,比如:root/lnmp1.6/nginx-1.16.0,如果忘记放在那个目录了,可以执行:find / -name “nginx-1.16.0”  -type d

2、找到目录之后,执行:cd /root/lnmp1.6/nginx-1.16.0/

3、接下来给Nginx加上IPv6模块,执行:./configure –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module –with-ipv6

4、如果编译没有错误,然后执行:make 但不要make install。

5、编译完,在objs目录下有一个nginx执行文件,先备份下原来老的nginx文件,执行:mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old ,再把新objs下的nginx cp到sbin下,执行:cp objs/nginx /usr/local/nginx/sbin/nginx

6、执行 /usr/local/nginx/sbin/nginx -t 测试下,显示没有问题。

7、再执行:make upgrade

8、执行:/usr/local/nginx/sbin/nginx -V 看一下,IPv6模块已经编译进去了。

二、Nginx启用IPv6

修改Nginx所有虚拟主机的配置,包括nginx程序默认配置、各网站nginx配置

1、修改nginx程序默认配置
/usr/local/nginx/conf/nginx.conf
listen 80;下面添加一行:
listen [::]:80 ipv6only=on;

2、各网站nginx配置修改
将所有server {}里面的listen 80;下面添加上:
listen [::]:80;

码字很辛苦,转载请注明来自非WEB-DL资源站《让LNMP安装的Nginx支持网站监听IPv6》

评论