Nginx:配置和安装IPv6网络支持
时间:2020-01-09 10:42:47 来源:igfitidea点击:
如何在Linux或者Unix上设置具有HTTP/2,SSL和IPv6 + IPv4支持的Nginx
编译支持IPv6的Nginx
您需要传递with-ipv6选项来配置命令。
执行以下命令进行编译,然后输入(这是最新版本的默认设置,因此您可以跳过此步骤):
# cd /path/to/nginx-src-code/ # ./configure --without-http_autoindex_module --without-http_userid_module \ --without-http_auth_basic_module --without-http_geo_module \ --without-http_fastcgi_module --without-http_empty_gif_module \ --with-poll_module --with-http_stub_status_module \ --with-http_ssl_module --with-ipv6 # make install
验证Nginx中的IPv6支持
使用以下命令验证Nginx Web服务器中的IPv6支持:
# /usr/local/nginx/sbin/nginx -V
或者
# nginx -V
nginx version: nginx/0.8.46 built by gcc 4.1.2 20080704 (Red Hat 4.1.2-48) TLS SNI support disabled configure arguments: --without-http_autoindex_module --without-http_userid_module --without-http_auth_basic_module --without-http_geo_module --without-http_fastcgi_module --without-http_empty_gif_module --with-poll_module --with-http_stub_status_module --with-http_ssl_module --with-ipv6
或者一个简单的简短命令:
# nginx -V 2>&1 >/dev/null | grep --color -o with-ipv6
输出示例:
with-ipv6
如何在Nginx中启用IPv6支持?
确保根据设置传递选项。
请注意,所有" IPv6地址"均在方括号中指定。
编辑配置文件
编辑/usr/local/nginx/conf/nginx.conf或者/etc/nginx/nginx.conf,执行:
# vi /usr/local/nginx/conf/nginx.conf
确保将listen指令更新如下(必须将其放置在`server {}指令之间):
# listen to all IPv4 and IPv6 interfaces for port 80 # IPv4 listen :80; # IPv6 listen [::]:80;
在一行中同时收听IPv4和IPv6地址:
listen [::]:80;
不要仅在IPv6上侦听IPv4:
listen [::]:443 default ipv6only=on; listen [::]:80 default ipv6only=on;
如何配置具有HTTP/2 + SSL和IPv6/IPv4支持的Nginx?
语法为:
# port 443 IPv4 with http2 and ssl listen 443 ssl http2; # port 443 IPv6 with http2 and ssl listen [::]:443 ssl http2; # port 80 IPv4 listen *:80; listen [::]:80; # my server name :) server_name www.theitroad.local;
重新加载Nginx服务器
重新加载并重新启动nginx配置,执行:
# /usr/local/nginx/sbin/nginx -t && /usr/local/nginx/sbin/nginx -s reload
或者
# nginx -t && nginx -s reload
或者
# systemctl reload nginx
如何仅在2607:f0d0:1002:59 :: 2 IPv6地址上侦听?
编辑配置文件,如下所示:
listen listen [2607:f0d0:1002:59::2]:80;
如何验证IPv6和IPv4均正常工作?
使用netstat命令来验证ip绑定:
# netstat -tulpna | grep nginx
输出示例:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 33094/nginx tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 33094/nginx tcp 0 0 :::80 :::* LISTEN 33094/nginx tcp6 0 0 :::443 :::* LISTEN 33094/nginx
tcp6行表示我的nginx在IPv6上列出。
您也可以使用wget命令或者Web浏览器进行验证:
$ wget http://[2607:f0d0:1002:59::2]/
请注意,您需要更新DNS并设置IPv6记录的AAAA类型。