
!https://github.com/samply/beam-connect/raw/main/doc/Logo.svg
Samply.Beam.Connect是分布式任务代理https://github.com/samply/beam%E7%9A%84HTTP%E4%B8%AD%E7%BB%A7%E5%BA%94%E7%94%A8%E3%80%82%E5%AE%83%E7%94%A8%E4%BA%8E%E6%8F%90%E4%BE%9B%E9%80%8F%E6%98%8E%E7%9A%84HTTP%E5%B0%81%E8%A3%85%E6%96%B9%E6%B3%95%EF%BC%8C%E9%80%9A%E8%BF%87Samply.Beam%E4%BB%BB%E5%8A%A1%E6%9C%BA%E5%88%B6%E4%BC%A0%E8%BE%93%E8%AF%B7%E6%B1%82%E5%92%8C%E5%9B%9E%E5%A4%8D%EF%BC%8C%E5%85%B6%E4%BD%BF%E7%94%A8%E9%81%B5%E5%BE%AA%E5%B8%B8%E8%A7%84HTTP%E4%BB%A3%E7%90%86%E8%AF%AD%E4%B9%89%E3%80%82
本镜像适用于已部署Samply.Beam环境的场景,需已存在运行中的Samply.Beam.Broker(中央代理)、Samply.Beam.CA(证书颁发机构)和至少两个本地Samply.Proxies(代理节点)。如需搭建此环境,请参考https://github.com/samply/beam/blob/main/README.md%E3%80%82
克隆仓库并进入目录
bashgit clone https://github.com/samply/beam-connect.git cd beam-connect
通过Rust构建
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 http://localbeamconnect:8081 -H "Proxy-Authorization: ApiKey connect1.proxy23.localhost Connect1Secret" -H "Authorization: basic YWxhZGRpbjpvcGVuc2VzYW1l" http://uk23.virtual/json
参数说明
-x http://localbeamconnect:8081:指定Beam.Connect作为HTTP代理。-H "Proxy-Authorization: ApiKey connect1.proxy23.localhost Connect1Secret":Beam.Connect与Samply.Proxy之间的认证信息。-H "Authorization: basic YWxhZGRpbjpvcGVuc2VzYW1l":将被转发到目标资源的认证头。http://uk23.virtual/json:请求的目标资源。请求路由
需提供请求资源与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支持
支持HTTPS,但需配置以下参数:
SSL_CERT_PEM:用于传入SSL连接的PEM证书文件路径。SSL_CERT_KEY:SSL连接对应的密钥文件路径。TLS_CA_CERTIFICATES_DIR:若本地目标使用自签名证书且未被beam-connect信任,需将目标证书作为PEM文件放置于此目录下。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务