You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过Railway访问Litestar API,寻求远程调用解决方案

解决Litestar应用在Railway上无法远程调用API的问题

调整端口配置

Railway会自动分配随机端口,不能固定写8000,得读取环境变量里的PORT:

  • 启动命令改成:uvicorn main:app --host 0.0.0.0 --port ${PORT:-8000}
  • 如果代码里硬编码了端口,改成动态读取:
    import os
    from litestar import Litestar
    
    app = Litestar(...)
    
    if __name__ == "__main__":
        import uvicorn
        uvicorn.run(
            "main:app",
            host="0.0.0.0",
            port=int(os.getenv("PORT", 8000)),
            reload=True
        )
    

核对Railway部署设置

  • 进入Railway项目的部署页面,检查Start Command是否使用了上述动态端口命令
  • 查看部署日志,确认应用监听的是Railway分配的端口(日志会显示Uvicorn running on http://0.0.0.0:xxxx,其中xxxx为分配的随机端口)

配置CORS(跨域调用场景)

如果是前端调用API,需要给Litestar添加CORS中间件:

from litestar import Litestar
from litestar.middleware.cors import CORSMiddleware

app = Litestar(
    ...,
    middleware=[CORSMiddleware(allow_origins=["*"])]  # 生产环境建议替换为具体业务域名
)

验证公网访问链接

  • 在Railway项目的Settings中找到Domain,使用生成的公网域名(格式类似your-project.up.railway.app)拼接API路径访问,比如https://your-project.up.railway.app/health
  • 也可以用curl命令测试连通性:curl https://your-project.up.railway.app/health

排查网络问题

  • 确认本地网络未屏蔽Railway的域名或端口
  • 切换其他网络(如手机热点)测试,排除本地网络限制

内容的提问来源于stack exchange,提问作者Helen Kapatsa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 13:12:43