consul sidecars 是否支持上游的 websockets?

问题描述

是否可以在上游配置一个带有 websocket 的 consul agent sidecar?我尝试了以下配置,但它不起作用:

{
  "bind_addr": "172.17.0.2","data_dir": "/consul/data","datacenter": "dc1","node_id" : "98dc3bf4-a364-46d9-8b72-624963064ab2","node_name": "socket-client-agent","leave_on_terminate": true,"ports": [
    {
      "grpc": 8502
    }
   ],"server": false,"service": [
  {
   "address": "172.17.0.3","connect": [
     {
       "sidecar_service": [
         {
           "checks": [
             {
               "interval": "10s","name": "socket-client-sidecar-proxy","tcp": "172.17.0.3:21000"
             }
           ],"port": 21000,"proxy": [
            {
              "config": [
                {
                  "bind_address": "0.0.0.0","bind_port": 21000,"protocol": "tcp"
                }
              ],"upstreams": [
                {
                  "destination_name": "sockets-server","local_bind_port": 5001,"config": {
                    "protocol": "tcp"
                  }
                }
              ]
            }
          ]
        }
      ]
    }
   ],"id": "socket-client-0","name": "socket-client","port": 5000
   }
   ],"ui_config": [
   {
     "enabled": false
   }
  ]
}

根据配置,我尝试连接到使用 websockets 协议的 sockets-server 服务。我使用 envoy 作为 sidecar 代理。

解决方法

目前 Consul 没有正确配置 Envoy 来支持 WebSocket 升级。此 GitHub 问题提供了有关该问题的更多详细信息以及可能的修复方法 - https://github.com/hashicorp/consul/issues/9473

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...