一为Nginx添加ipv6模块
一:检查nginx是否已经包含ipv6模块
1 | [root@iz2ze3oyrjbxg32wecre15z /]# /alidata/server/nginx/sbin/nginx -V |
从结果看出,输出结果没有 ipv6支持
如果支持ipv6,则输出结果会包含 “–with-ipv6”。
如果各位同学的环境已经支持,则可以不用往下看啦!
二:准备nginx源码
1、本文以1.4.4版本为例,其他版本没有测试,不过我想基本类似,具体请各位同学亲测。
2、如果本地没有源码,则需要到如下地址下载:https://nginx.org/download/nginx-1.4.4.tar.gz其他版本,也可以在https://nginx.org下载,上面会列出所有版本以供下载。
3、将下载的源码上传到linux
在root 根目录新建 tmp目录1
2
3[root@iz2ze3oyrjbxg32wecre15z /]# cd /root
[root@iz2ze3oyrjbxg32wecre15z /]# mkdir tmp
将安装包上传到该目录,上传工具推荐同学们使用Xftp
三:编译nginx源代码,加入ipv6支持
1、跳转到tmp目录,执行命令解压安装文件1
2
3[root@iz2ze3oyrjbxg32wecre15z /]# cd tmp
[root@iz2ze3oyrjbxg32wecre15z /]# tar xvzf nginx-1.4.4.tar.gz
2、跳转到解压过后的目录,执行命令配置新的参数,加入 ipv6模块。
注意:在配置参数时,一定要在原来的参数的基础上追加,否则有可能丢失原来的支持模块,切记!切记!切记!1
2
3[root@iz2ze3oyrjbxg32wecre15z /]# cd nginx-1.4.4
[root@iz2ze3oyrjbxg32wecre15z/]#./configure --user=www --group=www --prefix=/alidata/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_gzip_static_module --with-ipv6
注意:‘–’符号之间有空格。
….中间省略若干输出
3、配置完毕后,执行make 命令,重新编译
….中间省略若干输出
4、编译完毕后,会在当前目录下创建objs目录,新的nginx执行文件将生成在该目录中
四:替换nginx执行文件
1、同学们要养成好习惯,首先备份原来的nginx1
2
3[root@iz2ze3oyrjbxg32wecre15z /]#
cp /alidata/server/nginx/sbin/nginx /alidata/server/nginx/sbin/nginx.bak
2、停止nginx
这里必须停止nginx,否则无法覆盖的哦!1
[root@iz2ze3oyrjbxg32wecre15z /]# service nginx stop
3、覆盖nginx执行文件1
[root@iz2ze3oyrjbxg32wecre15z /]# cp nginx /alidata/server/nginx/sbin/nginx
3、测试新的nginx程序是否正确1
[root@iz2ze3oyrjbxg32wecre15z /]# /alidata/server/nginx/sbin/nginx -t
4、启动nginx1
[root@iz2ze3oyrjbxg32wecre15z /]# service nginx start
五:再次检查nginx是否已经支持ipv61
[root@iz2ze3oyrjbxg32wecre15z /]# /alidata/server/nginx/sbin/nginx -V
二.配置IPv6端口监听
Nginx可以同时支持ipv4与 ipv6的监听,但为了一致性的考虑,新版本Nginx推荐使用分开监听,下面我们开始进入正题。
一、默认IPV4配置
下面我们先来看一看默认的ipv4配置:
二、加入ipv6监听
1、从Nginx 1.3的某个版本起,默认ipv6only是打开的,所以,我们只需要在监听中加入ipv6监听即可,不过推荐都手动加上比较好,代码如下:1
listen [::]:80 ipv6only=on;
2、编辑完毕后保存,然后使用命令检测配置是否正确1
[root@iz2ze3oyrjbxg32wecre15z /]# /alidata/server/nginx/sbin/nginx -t
如果出现 test is successful代表配置检测成功。
3、重启nginx1
[root@iz2ze3oyrjbxg32wecre15z /]# service nginx reload
4、检测监听是否已经成功
1 | [root@iz2ze3oyrjbxg32wecre15z /]# netstat -tuln |
如果列表出现 :::80的监听代表ipv6的监听已经成功。
13三、其他个性化操作
1、如果只想监听ipv6,则去掉ipv4的配置,然后将ipv6设置为默认即可。
2、如果想监听指定ipv6地址,则将中括号中的::换成 指定ipv6地址即可。
3、在前面的配置中,很多同学看到有监听443端口,这个是对ssl的监听,监听方式和默认80监听类似,大家可以举一反三嘛!
四、我们使用ipv6网站来测试是否已经可以正常访问
我们常用的网站是:https://ipv6-test.com/validate.php
结果显示,已经正确访问到网站。
转载请注明出处,谢谢!
参考:https://blog.csdn.net/shenxianfeng/article/details/72859830!