You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Heroku的两个免费dynos上运行Node.js Web服务器?

如何在Heroku免费版上用两个dynos部署你的Express应用

嘿,我明白你想利用免费版的两个dynos来部署你的简单Web服务器,官方文档提集群可能让你有点困惑——其实免费版的dynos是用来扩展现有的web进程,不是付费级别的集群方案,操作很简单,我一步步教你:

1. 确认你的基础配置没问题

先检查你现有的代码和Procfile:

  • 你的Express代码完全符合Heroku要求,监听process.env.PORT是正确的做法:
var express = require('express')
var app = express()
app.get('/', function (req, res) {
  res.send(`Hello World`)
})
app.listen(process.env.PORT)
  • Procfile的配置也没问题,准确指定了web进程的启动命令:
web: node web.js

2. 用Heroku CLI缩放dyno数量

打开终端,先确保你已经登录Heroku CLI(没登录的话先执行heroku login完成认证),然后进入你的项目目录,执行以下命令:

heroku ps:scale web=2

这个命令会把你的web进程数量从默认的1个调整为2个,刚好用上免费版允许的最大dynos额度。

3. 验证部署结果

执行heroku ps命令,你会看到类似这样的输出,这就说明两个dynos已经正常运行了:

=== web (Free): node web.js
web.1: up 2024/05/20 10:30:00 (~ 5m ago)
web.2: up 2024/05/20 10:30:05 (~ 5m ago)

一些实用注意事项

  • 免费额度限制:Heroku每个账户每月有550小时的免费dyno运行时间,如果你开了2个dynos,总运行时间会按两个进程计算(相当于每个dyno最多能运行275小时/月),超过额度后dynos会自动休眠,直到下月额度重置。
  • 休眠机制:免费dynos如果30分钟没有外部访问,会进入休眠状态,下次访问需要几秒唤醒。不过两个dynos的话,通常不会同时休眠,能小幅提升可用性,但毕竟是免费服务,不要指望生产级别的稳定性。

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

火山引擎 最新活动