Skip to main content

控制请求发送到什么环境

⚠️ 这个功能一般用于有网络隔离的场景, 一般用不到

功能类似于本地改 /etc/hosts, 本地改 /etc/hosts 有诸多限制, 如会污染机器的全局域名解析. 这个功能主要解决的问题是:

  • 请求的动态路由, 通过 linkerd 1.x 代理实现, 支持丰富的路由配置, 这样就不用在本地机器上配置 /etc/hosts
  • 一般企业内部 生产测试 网段有网路隔离, 这个可以配置代理服务器穿透防火墙

代理的支持配置在 配置 上.第一个按钮是查看或新建一个配置,第二个按钮是选择一个已经存在的配置.

指定命名空间和对应的地址和端口号#

1. 中的命名空间及请求的环境名称和代理表中的一致,默认情况下 代理表 是隐藏的,点 2. 中右边那个像眼睛的按钮即可显示.命名空间 中的名字任意字符串且代理表中需要有一条相同名字的命名空间.实际执行中这个名字会匹配到代理表中本项目下有相同名字的那条代理记录.

要启用配置中的代理功能需要 2. 中的按钮状态是 启用中

3. 中的代理表是个独立的全局组件,修改后需要及时点击内部的 保存.注意如果需要是相同的协议,如果用例请求中用的是 https, 代理的服务端口也需要支持 https.命名空间 字段为任意字符串,地址字段为实际请求的 域名IP.

4. 中的 公共消息头 会在使用该配置的所有请求里面把表里面的信息添加到 请求头 中, 这个例子中添加 Host 的目的是有的服务在 Nginx 后面,Nginx 的 server_name 配置需要通过 Host 消息头来匹配对应的服务.

判断请求确实通过了代理#

上面的例子中,用例中请求的是 https://www.baidu.com/ 代理中配的是访问 github.com.响应的消息头中会有一个 Via:1.1 linkerd 的记录.