先在终端下输入以下指令,看看输出结果有没有–with-ipv6
,没有的话就需要重新编译带有ipv6
支持的nginx
了。
nginx -V
如果Nginx
没有开启–with-ipv6
,那就自己手动编译nginx
,下面是正确地配置nginx
让其同时监听IPv4
和IPv6
的端口(包括http
协议的80和https
协议的443端口),同时介绍一下只监听IPv6
和特定IPv6
地址的方法。
同时监听IPv4和IPv6地址
编辑/etc/nginx/conf.d/default.conf
,将server
段的listen
语句改成:
listen [::]:80;
从Nginx 1.3
; 版本开始,默认ipv6only
是启用的,也就是上面的语句只会监听IPv6
的端口而不会监听IPv4
的端口。虽然Linux
系统默认是监听IPv6
的某个端口会同时监听对应的IPv4
的端口,但是FreeBSD
是默认分开IPv6
和IPv4
的。所以为了一致性的考虑(新版本Nginx
必须推荐这样做),请使用分开监听的方法:
1、未开启SSL
#时监听IPv4和IPv6的80端口 listen 80; listen [::]:80 ipv6only=on;
保存配置文件,重启Nginx
;现在你就可以通过IPV6
访问你的网站了。
2、开启SSL
#时监听IPv4 80端口和IPv6的443端口 listen 80; listen [::]:80; listen 443 ssl http2; listen [::]:443 ssl http2;
保存配置文件,重启Nginx
;现在你就可以通过IPV6
访问你的网站了。
本文由 podipod软库网 作者:DevOps 发表,转载请注明来源!