
samply/beam-connect!Logo
Samply.Beam.Connect是分布式任务代理Samply.Beam的HTTP中继应用。它用于提供透明的HTTP封装方法,通过Samply.Beam任务机制传输请求和回复,其使用遵循常规HTTP代理语义。
本镜像适用于已部署Samply.Beam环境的场景,需已存在运行中的Samply.Beam.Broker(中央代理)、Samply.Beam.CA(证书颁发机构)和至少两个本地Samply.Proxies(代理节点)。如需搭建此环境,请参考Samply.Beam文档。
bashgit clone [***] cd beam-connect
bashcargo build --release
进入二进制文件目录(默认构建后路径为./target/release),启动Samply.Beam.Connect:
bash./connect --proxy-url <PROXY_URL> --app-id <APP_ID> --local-targets-file <LOCAL_TARGETS_FILE> --discovery-url <DISCOVERY_URL> (--proxy-apikey <PROXY_APIKEY>) (--bind-addr 0.0.0.0:8062)
必填参数:
PROXY_URL:用于连接Samply.Broker的本地Samply.Proxy的URL。APP_ID:Beam.Connect应用的BeamId。LOCAL_TARGETS_FILE:本地服务解析文件的路径(见请求路由)。DISCOVERY_URL:用于查询中央服务发现的URL(或本地文件路径)(见请求路由)。仅接收模式需填参数:
PROXY_APIKEY:Beam.Connect在Samply.Broker上注册监听时使用的API密钥。可选参数:
BIND_ADDR:Beam.Connect监听的接口和端口,默认值为0.0.0.0:8062。NO_AUTH:可选标志,设置后Samply.Beam.Connect不要求Proxy Authorization头,即转发请求时不进行(客户端)认证。所有参数均可通过环境变量指定。
bashdocker pull samply/beam-connect
通过环境变量提供与作为应用运行相同的参数:
bashdocker run -e PROXY_URL='<PROXY_URL>' \ -e APP_ID='<APP_ID>' \ -e LOCAL_TARGETS_FILE='<LOCAL_TARGETS_FILE>' \ -e DISCOVERY_URL='<DISCOVERY_URL>' \ -e PROXY_APIKEY='<PROXY_APIKEY>' \ -e BIND_ADDR='<BIND_ADDR>' \ -e NO_AUTH='true' \ samply/beam-connect
说明:环境变量
PROXY_APIKEY仅在接收模式下需要;BIND_ADDR和NO_AUTH为可选参数。
以下是使用cURL通过Beam.Connect访问第23大学医院(uk23)内部服务的示例:
bashcurl -x [***] -H "Proxy-Authorization: ApiKey connect1.proxy23.localhost Connect1Secret" -H "Authorization: basic YWxhZGRpbjpvcGVuc2VzYW1l" [***]
-x [***]:指定Beam.Connect作为HTTP代理。-H "Proxy-Authorization: ApiKey connect1.proxy23.localhost Connect1Secret":Beam.Connect与Samply.Proxy之间的认证信息。-H "Authorization: basic YWxhZGRpbjpvcGVuc2VzYW1l":将被转发到目标资源的认证头。[***]:请求的目标资源。需提供请求资源与Beam.AppId之间的可配置映射以路由消息。此映射通过以下方式实现:首先,中央服务发现将HTTP权威部分(示例中的uk23.virtual)映射到可访问的Beam.AppId(接收方);然后,同一权威部分通过本地目标文件替换为内部主机名。映射示例可在examples/文件夹中找到。
通信中的错误将以适当的HTTP响应返回。
若Beam.Connect前部署了一个或多个反向代理,Host头可能被代理覆盖。此时,可设置X-Replace-Host头手动替换Beam.Connect中的主机头。
如命令行参数列表所述,中央站点发现信息从指定的URL或本地JSON文件获取。为避免本地服务需要对外连接,Samply.Beam.Connect将接收的信息通过本地REST端点导出:GET http://<beam_connect_url>:<beam_connect_port>/sites。注意,此信息仅在启动时获取,在程序运行期间保持静态。
支持HTTPS,但需配置以下参数:
SSL_CERT_PEM:用于传入SSL连接的PEM证书文件路径。SSL_CERT_KEY:SSL连接对应的密钥文件路径。TLS_CA_CERTIFICATES_DIR:若本地目标使用自签名证书且未被beam-connect信任,需将目标证书作为PEM文件放置于此目录下。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务