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

Appwrite 1.2.0添加自定义域名时返回500错误,遇CORS跨域问题

解决Appwrite 1.2.0自定义域名配置的500错误与CORS问题

一、排查500内部服务器错误

  • 检查.env核心配置:
    • 确认_APP_DOMAIN是否也设为api.example.com,这是很多人漏改的关键变量,Appwrite域名配置需要_APP_DOMAIN配合_APP_DOMAIN_TARGET生效,光改后者没用。
    • 检查.env里所有域名相关变量的格式,不要用中文引号,变量值前后别留空格。
  • 查看API服务日志:
    • 执行docker-compose logs -f api实时查看报错,500错误的具体原因(比如证书权限、数据库连接问题)基本都会在这里输出。
    • 验证手动上传的SSL证书:确保证书文件放在./certificates目录,权限设为644,所属用户组是www-data,可执行chmod 644 ./certificates/*和chown www-data:www-data ./certificates/*调整。
  • 重启全部容器:
    • 修改.env后必须执行docker-compose down && docker-compose up -d,只重启单个容器会导致配置不一致,这是常见的坑。

二、解决CORS报错问题

  • 先搞定500错误,因为控制台无法访问是500导致的。如果临时没法用控制台配置CORS,直接修改数据库:
    • 进入Mongo容器:docker exec -it appwrite-mongo mongosh
    • 切换到Appwrite库:use appwrite
    • 更新应用的CORS规则,把你的前端域名加进去:
      db.applications.updateOne(
        { name: "你的应用名称" }, // 也可以用{ _id: "应用ID" }精准匹配
        { $set: { cors: ["https://www.mydomain.0r"] } }
      )
      
  • 检查全局CORS配置:
    • 查看.env里的_APP_CORS变量,如果有设置,要包含https://www.mydomain.0r,多个域名用逗号分隔,比如_APP_CORS=https://www.mydomain.0r,https://localhost。

三、验证配置有效性

  • 用curl测试API:
    • 执行curl -v https://api.example.com/v1/health,查看响应头里的Access-Control-Allow-Origin是否正确,同时确认没有500错误。
  • 确认DNS解析:
    • 执行nslookup api.example.com检查域名是否指向服务器IP,避免解析延迟导致配置不生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 17:16:07