https://zhuanlan.zhihu.com/p/443835798

从传统二进制部署的 Nginx ,到云原生部署的 K8S、Istio,分别介绍网站开启 IPv6 的三种方式。

1.Nginx 如何开启 IPv6

前置条件

1.1 启动监听 IPv6 地址的 Nginx

默认 Nginx 的配置文件(/etc/nginx/nginx.conf)已经开启 IPv6 访问,启动 Nginx。

    server {
listen 80;
listen [::]:80; ## 监听 IPv6 的 80 端口
...
}

可以看到 Ngnix 同时监听在 IPv4 和 IPv6 地址上。

# netstat -ntlp | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 138362/nginx: maste
tcp6 0 0 :::80 :::* LISTEN 138362/nginx: maste

1.2 服务器验证 IPv6 访问

在服务器上通过 curl 命令可以验证 IPv6 访问情况

# curl -g http://[2402:4e00:1013:e500:0:940e:29d7:3443] -I
HTTP/1.1 200 OK
Server: nginx/1.20.1
Date: Sat, 04 Dec 2021 13:58:37 GMT
Content-Type: text/html
Content-Length: 4833
Last-Modified: Fri, 16 May 2014 15:12:48 GMT
Connection: keep-alive
ETag: "53762af0-12e1"
Accept-Ranges: bytes

1.3 安全组对 IPv6 来源地址授权访问

接下来在 安全组 中对 监听在 IPv6 地址上的 80 端口授权访问

1.4 本地电脑验证 IPv6 访问

如果 本地网络已开启 IPv6访问,接下来参照 浏览器访问 IPv6 地址,在本地电脑通过浏览器可以验证 IPv6 访问。

1.5 域名添加 IPv6 地址解析

给域名添加 IPv6 解析记录(AAAA),添加完后可以通过 IPv6 在线域名解析工具 对其解析验证。

同一个主机名可以同时解析 IPv4(A 记录) 和 IPv6(AAAA 记录),本地浏览器一般 IPv6 优先访问。

1.6 IPv6 网站开启验证

通过 网站IPv6开启验证工具 来验证 IPv6 是否开启成功。

2. K8S 如何开启 IPv6

在 K8S 中对 Web 服务来说,一般通过 Ingress 对用户提供流量访问,所以 K8S 中开启 IPv6,就是 Ingress 支持 IPv6。

此处以 腾讯云容器服务为例,介绍如何开启 IPv6。

参照文章 腾讯云 cvm 开启 IPv6 ,提交 IPv6 内测申请。

2.1 创建 IPv6 NAT64 版本的 Ingress

创建 IPv6 NAT64 版本的 Ingress。

IPv6 NAT64:用户与 IPv6 NAT64 的 LB 之间是 IPv6 访问,IPv6 NAT64 的 LB 与后端 Service、Pod 通信是 IPv4。 优点:业务程序无需改造网络,可支持 IPv6 网络访问。 缺点: 无法获取客户端真实 IPv6 地址。

接下来参照上文,对该 Ingress 背后的负载均衡器添加对来源 IPv6 地址访问的安全组策略即可。

2.2 验证 IPv6 网站是否开启

验证方法同上,此处不再赘述。

3. Istio 服务网格如何开启 IPv6

服务网格 istio,比 K8S 原生的 Ingress 管理流量更方便,如果你使用了服务网格,就不需要对 K8S 的 ingress 开启 IPv6 访问,直接在服务网格中开启 IPv6 访问。

3.1 创建 IPv6 边缘代理网关

创建边缘代理网关时,选择提前创建好 IPv6 LB。

3.2 创建 IPv6 Gateway

创建 IPv6 Gateway 时,关联刚创建的 IPv6 边缘代理网关。

如果开启 HTTPS 访问,则添加好证书即可。

3.3 创建 IPv6 Virtual Service

创建 IPv6 Virtual Service,挂载上面创建的 IPv6 Gateway。

3.4 验证 IPv6 网站是否开启

验证方法同上,此处不再赘述。

IPv6 大势所趋,广大站长赶紧行动吧。

[转帖]网站开启 IPv6 的三种方式的更多相关文章

  1. Linux就这个范儿 第15章 七种武器 linux 同步IO: sync、fsync与fdatasync Linux中的内存大页面huge page/large page David Cutler Linux读写内存数据的三种方式

    Linux就这个范儿 第15章 七种武器  linux 同步IO: sync.fsync与fdatasync   Linux中的内存大页面huge page/large page  David Cut ...

  2. js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式

    js replace 全局替换   js 的replace 默认替换只替换第一个匹配的字符,如果字符串有超过两个以上的对应字符就无法进行替换,这时候就要进行一点操作,进行全部替换. <scrip ...

  3. 监视EntityFramework中的sql流转你需要知道的三种方式Log,SqlServerProfile, EFProfile

    大家在学习entityframework的时候,都知道那linq写的叫一个爽,再也不用区分不同RDMS的sql版本差异了,但是呢,高效率带来了差灵活性,我们 无法控制sql的生成策略,所以必须不要让自 ...

  4. 0036 Java学习笔记-多线程-创建线程的三种方式

    创建线程 创建线程的三种方式: 继承java.lang.Thread 实现java.lang.Runnable接口 实现java.util.concurrent.Callable接口 所有的线程对象都 ...

  5. 【整理】Linux下中文检索引擎coreseek4安装,以及PHP使用sphinx的三种方式(sphinxapi,sphinx的php扩展,SphinxSe作为mysql存储引擎)

          一,软件准备 coreseek4.1 (包含coreseek测试版和mmseg最新版本,以及测试数据包[内置中文分词与搜索.单字切分.mysql数据源.python数据源.RT实时索引等测 ...

  6. 【Java EE 学习 52】【Spring学习第四天】【Spring与JDBC】【JdbcTemplate创建的三种方式】【Spring事务管理】【事务中使用dbutils则回滚失败!!!??】

    一.JDBC编程特点 静态代码+动态变量=JDBC编程. 静态代码:比如所有的数据库连接池 都实现了DataSource接口,都实现了Connection接口. 动态变量:用户名.密码.连接的数据库. ...

  7. CSS控制样式的三种方式优先级对比验证

    入职已经一个月了,自此后,就好久没有写过博客了,在此先跟关注我的博友们说声抱歉.今天,在公司的一个培训作业的驱动以及伟哥那句“再不写博客就开除你”的监督下,我终于重拾旧爱,再次登录博客园,继续与大家分 ...

  8. 前端js,css文件合并三种方式,bat命令

    前端js,css文件合并三种方式,bat命令 前端js文件该如何合并三个方式如下:1. 一个大文件,所有js合并成一个大文件,所有页面都引用它.2. 各个页面大文件,各自页面合并生成自己所需js的大文 ...

  9. 使用Net.Mail、CDO组件、JMail组件三种方式发送邮件

    原文:使用Net.Mail.CDO组件.JMail组件三种方式发送邮件 一.使用Net.Mail 需要服务器认证,大部分服务器端口为25. { MailMessage mailMsg = mailMs ...

  10. Spring 使用AspectJ的三种方式

    Spring 使用AspectJ 的三种方式 一,使用JavaConfig 二,使用注解隐式配置 三,使用XML 配置 背景知识: 注意 使用AspectJ 的 时候 要导入相应的Jar 包 嗯 昨天 ...

随机推荐

  1. CF1340F Nastya and CBS 题解

    题目大意 给定一个长度为 \(n(n \le 10 ^ 5)\) 的括号序列.要求支持两个操作: 修改某个位置的括号. 询问 \([l, r]\) 区间内的括号序列是否合法. 题目分析 显然,这道题是 ...

  2. Programming Abstractions in C阅读笔记:p197-p201

    <Programming Abstractions in C>学习第64天,p196-p201总结. 一.技术总结 很难,唯有继续往下看才能让其变容易. 二.英语总结 1.psycholo ...

  3. 【.NET开发福音】使用Visual Studio将JSON格式数据自动转化为对应的类

    前言: 这段时间一直在做一个第三方平台的对接,对接第三方其实无非就是请求调用第三方的相关接口接收返回过来的相关参数.因此在这个过程中就会涉及大量的JSON响应参数或者请求参数转化为对应的实体类的情况, ...

  4. Kuasar成为CNCF官方项目,探索容器运行时新纪元

    本文分享自华为云社区<Kuasar成为CNCF官方项目,探索容器运行时新纪元!>,作者:云容器大未来. 北京时间12月20日,云原生计算基金会(CNCF)正式接纳多沙箱容器运行时项目 Ku ...

  5. 【华为云技术分享】STM32L476移植华为LiteOS系列教程(二)---开发前准备

    在进行移植华为LiteOS开发工作之前,我们是需要提前做一些准备工作,如:开发工具.环境.源码等相关事宜. 一.准备开发工具 STM32CubeMX用于生成工程文件:STM32CubeMX下载地址 I ...

  6. MySQL数据库事务隔离性的实现

    摘要:事实上在数据库引擎的实现中并不能实现完全的事务隔离,比如串行化. 本文分享自华为云社区<[数据库事务与锁机制]- 事务隔离的实现>,原文作者:技术火炬手 . 事实上在数据库引擎的实现 ...

  7. AOC萌新探索:搭建和体验在线AOC环境

    摘要:AOC是一个做网络设备自动化运维以及三方设备纳管的一个能力平台. 本文分享自华为云社区<AOC萌新探索之旅第一期--在线AOC环境初体验>,作者:oysterzz. 接触AOC没多久 ...

  8. CNCF即将推出平台成熟度模型丨亮点导览

    今年年初,云原生计算基金会(CNCF)发布了平台白皮书(点击这里查看中文版本).白皮书描述了云计算内部平台是什么,以及它们可以为企业提供的价值. 为了进一步挖掘平台对企业的价值,为企业提供一个可以评估 ...

  9. AtCoder ABC 165 D - Floor Function (Good, 手动模拟推出公式)

    题目链接:Here 题意: 给出正整数 \(A,B,N (1\le A\le 1e6,1\le B,N\le1e12)\) ,对于 \(x\in [0,N]\) 求出 \(\left\lfloor\f ...

  10. shardingsphere 5.1.1 分库分表

    1. mysql配置: application-dubboService = spring-csc-campaign-agent-context.xml kafka.topics.redisAcces ...