lnmp安装包nginx启用ipv6

网站增加了ipv6,使用了nginx服务器,但是使用ipv6地址直接访问nginx,不能连接。查看端口监听情况,并没有监听ipv6的80端口。

查看nginx是否启用ipv6

1
2
3
/usr/local/nginx/sbin/nginx -V  # 自己源码编译安装
/usr/bin/nginx -V               # yum或apt-get自动安装的
configure arguments:   --with-ipv6

省略了一些东西,如果输出中有--with-ipv6,那么说明ngnix已经安装了ipv6模块,否则要先安装ipv6模块。

修改nginx服务器配置文件

/usr/local/nginx/conf/nginx.conf

我装了apache后,原来的nginx配置全部又重新恢复了,我再次使用[::]:80不能绑定到ipv6的80端口上,出现

nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)

我检查80端口,就是没有被占用,换成其他的8080端口就正常。

最后,我是这样设置的,ipv6的80端口可以监听了。

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

另外一种方法。这个方法是在普通的虚拟主机下可用的。

1
2
3
4
server{
    listen 80;  #此处监听所有ipv4地址
    listen [::]:80; #此处监听所有ipv6地址
    }

重新加载nginx服务器

1
# /usr/local/nginx/sbin/nginx -s reload

查看端口监听

netstat -ntlp

tcp    0    0 0.0.0.0:80    0.0.0.0:*     LISTEN    1655/nginx.conf
tcp    0    0 :::80         :::*          LISTEN    1655/nginx.conf

0.0.0.0:80说明ipv4的80端口都在监控中。而:::80说明ipv6的80端口都在监控中。

现在就可以使用ipv6访问网站了。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
广告也精彩
技术爸爸

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: