docker - 源客户端无法连接到 Cloud Run 上的无服务器 Icecast 服务器

标签 docker google-cloud-platform serverless google-cloud-run icecast

是否可以制作无服务器的 Icecast 服务器?

我正在尝试在 Google 的无服务器 Cloud Run 平台上使用 Icecast 制作网络广播。我放了this docker image在 Container Registry 中,然后使用默认 Icecast 端口 8000 创建 Cloud Run 服务。在访问 Cloud Run 提供的 URL 时,这一切似乎都有效。使用它我可以进入默认的 Icecast 和管理页面。

问题是尝试使用源客户端连接到服务器(尝试使用 mixxx 和 butt)。我认为问题出在端口上,因为在 mixxx 上将端口设置为 8000 会出现:Socket is busy 错误,而 butt 根本无法连接。在 mixxx 上将端口设置为 443 给出:Socket error while butt:connect: server answered with 411!/p>

尝试用 Compute Engine 做同样的事情,但只是安装 Icecast 而不是 docker 镜像,一切都按预期工作。据我了解,Cloud Run 为容器 ( https://example.app ) 提供了一个 URL,并在设置时给定端口(对于 Icecast 8000),但源客户端尝试使用其提供的端口 ( http://example.app:SOURCE_CLIENT_PORT ) 连接到该 URL。所以不确定 HTTPS 是否存在问题,或者只是需要以不同方式配置端口。

最佳答案

使用 Cloud Run,您只能向外部公开 1 个端口。默认情况下它是 8080 端口,但您可以覆盖此 when you deploy your revision .

此端口被包装并位于 Google Cloud 基础设施的前端层之后,名为 Google Front End,并在端口 443 (HTTPS) 上通过 DNS (*.run.app) 公开。

因此,您只能通过端口 443 包装在暴露的端口上访问您的服务。任何其他端口都会失败。

使用 Compute Engine,您没有此限制,这就是您没有问题的原因。只需使用防火墙规则打开正确的端口即可享受。

关于docker - 源客户端无法连接到 Cloud Run 上的无服务器 Icecast 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65311272/

相关文章:

node.js - 无法连接到数据库 - NEST.JS 和 TypeORM

python - 将 Apache Superset 与 Docker 一起使用时缺少 MapBox token

javascript - Zeit (Vercel) 现在无服务器身份验证请求因 CORS 而失败

aws-cloudformation - 使用无服务器框架为多个 IoT 设备设置 AWS IoT

google-cloud-storage - Google 云存储文件上传 - 找不到请求的页面。 【404】

azure - 使用azure功能在移动应用程序中进行身份验证

docker.service 失败。详情见 'journalctl -xe'

azure - 在 Docker 文件中挂载 Azure Blob 存储

redirect - 如何在 Google Cloud 中将 www 重定向到非 www?

Kubernetes 上的 Jenkins 未加载外部卷中的/var/jenkins_home/init.groovy.d 文件