nginx添加ipv6模块并配置ipv6端口监听

一为Nginx添加ipv6模块

一:检查nginx是否已经包含ipv6模块

1
[root@iz2ze3oyrjbxg32wecre15z /]# /alidata/server/nginx/sbin/nginx -V

image

从结果看出,输出结果没有 ipv6支持

如果支持ipv6,则输出结果会包含 “–with-ipv6”。
image

如果各位同学的环境已经支持,则可以不用往下看啦!

二:准备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

image

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

注意:‘–’符号之间有空格。

image

….中间省略若干输出
image

3、配置完毕后,执行make 命令,重新编译

image

….中间省略若干输出

image

4、编译完毕后,会在当前目录下创建objs目录,新的nginx执行文件将生成在该目录中

image

四:替换nginx执行文件

1、同学们要养成好习惯,首先备份原来的nginx

1
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、启动nginx

1
[root@iz2ze3oyrjbxg32wecre15z /]# service nginx start

五:再次检查nginx是否已经支持ipv6

1
[root@iz2ze3oyrjbxg32wecre15z /]# /alidata/server/nginx/sbin/nginx -V

二.配置IPv6端口监听

Nginx可以同时支持ipv4与 ipv6的监听,但为了一致性的考虑,新版本Nginx推荐使用分开监听,下面我们开始进入正题。

一、默认IPV4配置

下面我们先来看一看默认的ipv4配置:

image

二、加入ipv6监听

1、从Nginx 1.3的某个版本起,默认ipv6only是打开的,所以,我们只需要在监听中加入ipv6监听即可,不过推荐都手动加上比较好,代码如下:

1
listen [::]:80 ipv6only=on;

image

2、编辑完毕后保存,然后使用命令检测配置是否正确

1
[root@iz2ze3oyrjbxg32wecre15z /]# /alidata/server/nginx/sbin/nginx -t

image

如果出现 test is successful代表配置检测成功。

3、重启nginx

1
[root@iz2ze3oyrjbxg32wecre15z /]# service nginx reload

4、检测监听是否已经成功

1
[root@iz2ze3oyrjbxg32wecre15z /]# netstat -tuln

如果列表出现 :::80的监听代表ipv6的监听已经成功。

13三、其他个性化操作

1、如果只想监听ipv6,则去掉ipv4的配置,然后将ipv6设置为默认即可。
image

2、如果想监听指定ipv6地址,则将中括号中的::换成 指定ipv6地址即可。

image

3、在前面的配置中,很多同学看到有监听443端口,这个是对ssl的监听,监听方式和默认80监听类似,大家可以举一反三嘛!

四、我们使用ipv6网站来测试是否已经可以正常访问

我们常用的网站是:https://ipv6-test.com/validate.php

image

结果显示,已经正确访问到网站。

转载请注明出处,谢谢

参考:https://blog.csdn.net/shenxianfeng/article/details/72859830!