Citrix ADC

gRPC反向桥接

在此场景中,Citrix ADC设备无缝桥接HTTP/2连接上接收的gRPC内容,并通过HTTP/1.1将其转发到后端gRPC服务器。

反向桥接工作原理

下图显示了gRPC桥接配置中组件之间如何交互。

gRPC端到端配置功能图

  1. 客户端在HTTP/2连接上发送gRPC请求,HTTP/2帧中的gRPC报头和原型-buf有效载荷。
  2. 基于策略评估,负载平衡虚拟服务器(绑定了gRPC服务)通过HTTP/1.1连接将请求转换并转发到后端服务器。
  3. 在接收到HTTP/1.1响应时,如果响应中没有grpc状态代码,ADC从HTTP响应代码中派生grpc状态情况。
  4. 然后,设备在将响应转发到客户机之前,将gRPC报头插入到HTTP/2尾文件中。

通过CLI配置gRPC反向桥接

配置gRPC反向桥接必须完成以下步骤:

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

添加HTTP配置文件1,HTTP/2和HTTP/2直接启用负载均衡虚拟服务器

要开始反向桥接配置,必须添加两个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)]

例子:

添加ns httpProfile profile2 -http2 DISABLED http2Direct DISABLED

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

使用Citrix ADC命令接口添加负载均衡虚拟服务器。

在命令提示符下,输入:

add lb vserver <服务类型> [(@ <端口>)][-httpProfileName ]

例子:

add lb vserver lb-grpc HTTP 10.10.10.10 80 -httpProfileName profile1 .使用实例

注意:

如果使用SSL类型的负载平衡虚拟服务器,则必须绑定服务器证书。有关详细信息,请参阅绑定服务器证书主题。

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

使用Citrix ADC命令接口添加具有gRPC端点的服务并设置HTTP概要文件2。

在命令提示符下,输入:

add service ( | ) [-httpProfileName ]

例子:

add service svc-grpc 10.10.10.11 HTTP 80 -httpProfileName profile2

为gRPC端点绑定服务到负载均衡虚拟服务器

使用Citrix ADC命令接口将gRPC服务绑定到负载均衡虚拟服务器。

在命令界面输入:

bind 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 Unauthenticated = 16
429,502,503,504 不可用= 14
404 未实现= 12

通过GUI配置gRPC反向桥接

添加HTTP配置文件1,HTTP/2和HTTP/2直接启用负载均衡虚拟服务器

  1. 导航到System > Profiles并单击HTTP Profiles。
  2. 启用HTTP配置文件中的HTTP/2选项。

gRPC反向桥接添加http配置文件与http2参数

为后端服务器添加禁用HTTP/2的HTTP配置文件2

  1. 导航到System >配置文件并点击HTTP配置文件
  2. 启用HTTP / 22. HTTP配置文件中的选项。
  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. 配置文件,添加HTTP配置文件gRPC端点。
  5. 点击好吧然后完成

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

为gRPC端点绑定服务到负载均衡虚拟服务器

  1. 导航到流量管理>负载均衡>虚拟服务器
  2. 点击添加为gRPC流量创建负载均衡虚拟服务器。
  3. 负载均衡虚拟服务器页面,点击服务服务团体部分。
  4. 负载均衡虚拟服务器服务绑定页,选择要绑定的gRPC服务。
  5. 点击关闭然后完成

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

有关GUI的详细过程,请参见负载平衡的话题。

gRPC反向桥接