nginx 同时支持ipv4与ipv6 配置
1、步骤 1: 确保操作系统支持 IPv6 检查如下:
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
如果输出是0,则表示ipv6 正常;
如果输出是 1,则表示 IPv6 被禁用。您可以通过以下命令启用 IPv6:
echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6
2、步骤 2: 配置 Nginx 监听所有 IP 版本
找到自己服务的配置文件
例如:/etc/nginx/nginx.conf
在 server 块中添加了监听指令,并指定了 IPv4 和 IPv6 的地址。
server {listen 80; # 监听 IPv4 的 80 端口listen [::]:80; # 监听 IPv6 的 80 端口server_name example.com;location / {root /usr/share/nginx/html;index index.html index.htm;}
}
3、步骤 3: 重新加载 Nginx 配置
sudo nginx -s reload
4、步骤 4: 测试配置
使用 curl 或 ping 命令测试 IPv6 地址是否可以正常工作:
curl -6 http://[your-ipv6-address]
ping6 [your-ipv6-address]
5、步骤5:测试监听情况,是否同时存在ipv4 、ipv6
6、步骤 6: 检查防火墙和路由器设置
确保您的防火墙和路由器配置允许 IPv6 流量通过。在某些情况下,您可能需要在防火墙规则中显式允许 IPv6 流量。
7、步骤7: 使用 ss 或 netstat 检查状态
使用 ss 或 netstat 命令来检查 Nginx 是否正在监听 IPv6
ss -tnlp | grep :80
netstat -tnlp | grep :80
查看输出中是否包含 ::😗,这表示 Nginx 在监听 IPv6 的所有接口
通过以上步骤,您应该能够在 Nginx 中同时支持 IPv4 和 IPv6。