Citrix ADC

gRPC反向连接

在这种情况下,Citrix ADC设备无缝桥接在HTTP / 2连接上接收的gRPC内容,然后通过HTTP / 1.1将其转发到后端gRPC服务器。

反向桥接的工作原理

下图显示了GrPC桥接配置中组件如何相互交互。

grPC端到端配置功能图

  1. 客户端通过HTTP / 2帧和proto-buf有效负载中的gRPC头在HTTP / 2连接上发送gRPC请求。
  2. 根据策略评估,负载平衡虚拟服务器(与GrPC服务绑定)将请求通过HTTP / 1.1连接转换并转发到后端服务器。
  3. 在收到HTTP / 1.1响应时,如果响应中没有grpc-status代码,ADC将从HTTP响应代码中派生grpc状态案例。
  4. 然后,设备在将响应转发给客户端之前,将gRPC标头插入HTTP / 2尾片。

使用CLI配置grPC反向桥接

要配置grPC反向桥接,必须完成以下步骤:

  • 在HTTP / 2和HTTP / 2直接启用的情况下添加HTTP配置文件1,以实现负载平衡虚拟
  • 在后端服务器禁用HTTP / 2的情况下添加HTTP配置文件2
  • 添加SSL / HTTP类型的负载平衡虚拟服务器并设置为HTTP配置文件1
  • 为gRPC端点添加服务并设置为HTTP配置文件2
  • 将gRPC端点的服务绑定到负载平衡虚拟服务器
  • 如果响应没有grpc状态码,则将http状态码映射到grpc状态码

在HTTP / 2和HTTP / 2直接启用的情况下添加HTTP配置文件1,以实现负载平衡虚拟

要开始反向桥接配置,必须添加两个HTTP配置文件。一个配置文件用于为gRPC客户端请求启用HTTP / 2,另一个配置文件用于为非gRPC服务器响应禁用HTTP / 2。

在命令提示符下,键入:

add ns httpProfile -http2 (ENABLED | DISABLED) [- http2direct (ENABLED | DISABLED)]

示例:

add ns httpProfile profile1 -http2 ENABLED -http2Direct ENABLED

在后端服务器禁用HTTP / 2的情况下添加HTTP配置文件2

使用Citrix ADC命令行禁用HTTP配置文件上对后端服务器响应的HTTP / 2支持。

在命令提示符下,键入:add ns httpProfile -http2 (ENABLED | DISABLED) [- http2direct (ENABLED | DISABLED)]

示例:

add ns httpProfile profile2 -http2 DISABLED http2Direct DISABLED

添加SSL / HTTP类型的负载平衡虚拟服务器并设置为HTTP配置文件1

使用Citrix ADC命令界面添加负载平衡虚拟服务器。

在命令提示符下,键入:

添加lb vserver [(@ )] [-httpProfileName ]

示例:

添加lb vserver lb-grpc HTTP 10.10.10.10 80 -httpProfileName profile1

注意:如果您使用的是SSL类型的负载平衡虚拟服务器,则必须绑定服务器证书。请参阅绑定服务器证书主题了解更多信息

为gRPC端点添加服务并设置为HTTP配置文件2

使用Citrix ADC命令界面添加带GrPC端点的服务并设置HTTP配置文件2。

在命令提示符下,键入:

添加服务 ( | ) [-httpProfileName ]

示例:

add service svc-grpc 10.10.10.11 HTTP 80 -httpProfileName profile2

将gRPC端点的服务绑定到负载平衡虚拟服务器

使用Citrix ADC命令界面将gRPC服务绑定到负载平衡虚拟服务器。

在命令界面,键入:

绑定lb vserver

示例:

绑定lb vserver lb-grpc svc-grpc

将HTTP响应代码映射到gRPC状态码

如果服务器未生成gRPC状态代码,Citrix ADC设备将根据收到的HTTP响应生成合适的gRPC状态代码。下面的映射表中列出了状态代码。

HTTP响应状态码 gRPC状态码
200 正常
400 内部= 13
403 PERMISSION_DENIED = 7
401 未经身份验证的= 16
429 502 503 504 用时= 14
404 未实现的= 12

使用GUI配置grPC反向桥接

在HTTP / 2和HTTP / 2直接启用的情况下添加HTTP配置文件1,以实现负载平衡虚拟

  1. 导航到系统>配置文件,然后单击HTTP配置文件。
  2. 在HTTP配置文件1中启用HTTP / 2选项。

grPC反向桥接使用http2参数添加http配置文件

在后端服务器禁用HTTP / 2的情况下添加HTTP配置文件2

  1. 导航到系统 > 配置文件,然后单击HTTP配置文件
  2. 在HTTP配置文件中启用HTTP / 2选项 2。
  3. 单击好吧(确定)。

grPC反向桥接全局后端HTTP / 2

添加SSL / HTTP类型的负载平衡虚拟服务器并设置为HTTP配置文件1

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器
  2. 单击添加为GRPC通信创建负载平衡虚拟服务器。
  3. 在“负载平衡虚拟服务器”页中,单击概要文件
  4. 在“配置文件“部分中,选择配置文件类型为HTTP。
  5. 单击确定,然后单击完成

grpc反向桥接全局后端HTTP / 2启用负载均衡

使用grPC端点添加服务并设置为HTTP配置文件2

  1. 导航到流量管理 > 负载平衡 > 服务
  2. 单击添加为GRPC通信创建应用程序服务器。
  3. 在“负载平衡服务”页面中,转到“概要文件“部分。
  4. 配置文件下,为GRPC端点添加HTTP配置文件
  5. 单击确定,然后单击完成

为GRPC端点添加GRPC反向桥接服务

将gRPC端点的服务绑定到负载平衡虚拟服务器

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器
  2. 单击添加为GRPC通信创建负载平衡虚拟服务器。
  3. 负载平衡虚拟服务器页面中,单击务和服务组部分。
  4. 在“负载平衡虚拟服务器服务绑定”页中,选择要绑定的GRPC服务。
  5. 单击关闭,然后单击完成

gRPC端点的反向桥接绑定服务

有关详细GUI过程,请参阅负载平衡主题。

gRPC反向连接