PAYATHON 2026

如何暂时停用 Heroku 上的 Ruby on Rails 应用以停止付费?

支付阿杰

结论

可以暂停应用并停止支付 Heroku SSL Endpoint 的月费,但开启维护模式或把 dyno 缩容到 0,都不会自动停止 SSL Endpoint 计费。要取消这笔费用,必须移除对应的付费 SSL Endpoint。

移除 Endpoint 通常不会影响 Heroku 应用、代码、环境变量和大部分配置,但原来的端点地址可能失效。以后重新启用时,可能需要创建新的端点、上传证书并修改 DNS 记录。因此,很难同时做到完全停止付费,又原样保留 SSL 配置以便随时恢复。

DNSimple 账户套餐能否暂停,要看当时的套餐条款和取消政策。域名注册、DNS 托管和账户订阅是三项不同的服务。即使应用停止运行,域名仍需按期续费;取消 DNS 托管还可能导致域名无法解析。

暂停 Heroku 应用

先把 Web dyno 缩容到 0:

heroku ps:scale web=0 --app your-app-name

如果应用还有 worker、scheduler 或其他进程,也要逐一检查并停止:

heroku ps --app your-app-name
heroku ps:scale worker=0 --app your-app-name

接着检查应用当前启用的附加服务:

heroku addons --app your-app-name

如果列表中有按月收费的 SSL Endpoint,需要将其移除。旧版 Heroku SSL Endpoint 常见的操作形式是:

heroku addons:remove ssl:endpoint --app your-app-name

部分旧版 CLI 或历史文档中使用的是:

heroku addons:destroy ssl:endpoint --app your-app-name

Heroku CLI 和产品调整后,命令名称可能发生变化。执行前,应以 heroku addons 显示的实际附加服务名称为准。删除付费附加服务会影响线上配置,继续操作前要核对确认提示中的应用名和服务名。

还要检查其他可能持续计费的项目,例如:

  • 付费 dyno 或额外进程
  • Heroku Postgres 付费方案
  • Redis、日志、监控等 add-on
  • Scheduler 执行的定时任务
  • 其他按资源量计费的服务

开启维护模式不能停止这些费用:

heroku maintenance:on --app your-app-name

维护模式只会阻止正常访问,不会取消 dyno、数据库或 SSL Endpoint。

将来如何恢复

准备重新上线时,先恢复所需的 dyno:

heroku ps:scale web=1 --app your-app-name

然后重新配置证书。现代 Heroku 环境可能使用 Heroku Automated Certificate Management,也可能需要手动配置证书。具体方式取决于应用套餐、域名设置和当时可用的 Heroku 产品。

可以先查看证书状态:

heroku certs --app your-app-name

如果重新创建 SSL Endpoint 后获得了新的 DNS target,就要在 DNSimple 中更新相应的 CNAME、ALIAS 或其他记录。恢复后的 endpoint hostname 不一定与原来相同。

只要没有删除整个 Heroku 应用,通常无须重新部署代码。现有 Git 关联、环境变量和应用配置一般会保留。数据库和第三方 add-on 能否保留,则取决于它们是否被删除或降级。

DNSimple 费用能否一起暂停

需要分别处理以下三项:

  1. 域名所有权和续费
  2. DNS 解析服务
  3. DNSimple 账户或套餐订阅

网站暂时下线不会暂停域名注册期限。如果几个月后还要继续使用同一域名,就必须按时续费,并保留有效的注册人邮箱和账户访问权限。

取消 DNSimple 付费套餐后,现有 DNS zone、记录和历史配置是否保留,应以当前套餐条款为准。不能假定取消后所有记录都会永久保存,也不能假定重新订阅后会自动恢复。

如果确定要取消,建议提前做好以下准备:

  • 导出或完整记录当前 DNS zone
  • 保存所有 A、AAAA、CNAME、MX、TXT 和 CAA 记录
  • 记录域名当前使用的 nameserver
  • 保存证书、私钥和证书链,但不要把私钥提交到 Git
  • 确认取消套餐不会关闭域名自动续费
  • 确认邮件服务是否依赖 DNSimple 中的 MX、SPF、DKIM 或 DMARC 记录

如果取消 DNS 服务后仍要保留正常的域名注册,可以先把 DNS 托管迁移到其他服务商,再修改域名的 nameserver。不过,这会增加迁移和恢复工作,无法满足以后无须重新配置的要求。

更稳妥的选择

如果只暂停几个月,可以考虑:

  • 将所有 Heroku dyno 缩容到 0
  • 删除确实产生月费的 SSL Endpoint
  • 降级或删除不再需要的付费 add-on
  • 保留 Heroku 应用本身
  • 保留域名注册
  • 根据 DNSimple 当前套餐价格和取消后果,决定是否继续使用其 DNS 托管

这样可以减少大部分运行费用,同时保留应用代码和核心配置。重新上线时,可能仍需配置新的 SSL Endpoint,并根据新的 endpoint hostname 修改 DNS。

题目中的 $20 SSL Endpoint 和 $8.00 DNSimple 套餐,是特定时期的产品和价格。Heroku 与 DNSimple 后续可能调整 SSL 产品、套餐或计费方式。实际操作前,应在两个平台的 Billing 页面确认当前收费项目,不要只按历史价格判断。

备注:内容仅供参考。