WebCal
Ctrl K

向导

暴露多个服务

向导集成常见问题支持
定价博客
快速开始充值与计费学术资源加速快速开始简介维护与故障网络
平台信息JetBrain ProjectorTmpWebCal学者计划@2026公测/宿迁A区介绍关于我们实例间数据拷贝服务器的性能指标分析潮汐算力负载均衡
国产芯片使用华为MindIE华为昇腾NPU摩尔线程GPU
配置环境CUDA/cuDNNMinicondaPython3.X依赖安装概要镜像
企业高级功能弹性部署弹性部署更新日志弹性部署最佳实践性能指标监控
容器实例JupyterLabSSH远程连接保存镜像升降配置多机多卡并行守护进程概述转换计费方式迁移实例(同地区)迁移实例远程桌面重置系统
如何选择 GPUGPU选型性能实测
数据上传数据下载数据公开数据公网网盘(强烈推荐)压缩 / 解压文件存储本地数据盘概要
最佳实践FileZillaGitGromacsHuggingFaceKataGoLinux基础MPIOpenCLPyCharm远程开发R(Rstudio)安装SSH隧道TensorBoardVSCode远程开发VisdomVulkanXShell开放端口微信消息性能篇暴露多个服务省钱绝招计算精度问题软件源

最佳实践

暴露多个服务

2026/07/3030106 次浏览

目前WebCal提供的自定义服务仅支持暴露一个端口,如果您需要暴露多个容器内的服务(http服务),那么可采用代理的方式做一层路由转发实现,如使用Nginx转发等,这里提供一种更轻量的方式。 假设您的容器中有两个服务,分别监听2000和3000端口,这里用Flask进行示例:

# 模拟监听2000端口的服务
from flask import Flask
app = Flask(__name__)

@app.route('/v1/hello')
def hello():
    return 'I`m port 2000'

if __name__ == '__main__':
    app.run(port=2000)


# 模拟监听3000端口的服务
from flask import Flask
app = Flask(__name__)

@app.route('/v2/hello')
def hello():
    return 'I`m port 3000'

if __name__ == '__main__':
    app.run(port=3000)

下面在6006端口上启动一个路由转发的服务,如果是匹配/v1/*的路由就转发给监听2000端口的服务,如果是匹配/v2/*的路由就转发给监听3000端口的服务。 首先在实例中下载转发服务程序wget https://webcal-public.ks3-cn-beijing.ksyuncs.com/tool/api-proxy/proxy_in_instance,然后在这个服务程序文件同目录下编写一个名为config.yaml文件,内容为:

proxies:
   - host_and_port: http://127.0.0.1:2000  # 要代理到的服务地址
     route_path: /v1/*                     # 匹配什么路由就转发到此地址

   - host_and_port: http://127.0.0.1:3000  # 可设置多组,转发到不同的host
     route_path: /v2/*

然后启动转发服务:

# 如果没下载转发程序,先下载
wget https://webcal-public.ks3-cn-beijing.ksyuncs.com/tool/api-proxy/proxy_in_instance

# 如果没有添加可执行权限,先添加权限
chmod +x proxy_in_instance

# 启动
./proxy_in_instance
下一篇省钱绝招
WebCal文档返回向导