您的 Node.js 服务器上安装什么?
- 来自 NodeSource 软件源的 Node.js 26 LTS 和 npm
- PM2 7,让您的应用保持运行,并在重启后自动恢复
- Caddy 作为反向代理:它会自行获取 HTTPS 证书,网站在基于您 IP 的 sslip.io 地址上打开
- 一个无特权的 app 用户和 /home/app/uygulama 项目文件夹
- 监听 127.0.0.1:3000 的示例 server.js
- git,方便您拉取自己的代码
- 防火墙开放 22、80 和 443 端口,应用的 3000 端口仅限内部使用
Node.js 需要多大的配置?
Node.js 没有官方的 RAM 数值。经验上,一个 API 或小型 Express 应用从 1 GB 起步即可,涉及 npm install 和构建步骤时 2 GB 更宽裕,大型前端构建适合 4 GB。这套安装没有添加交换空间,所以内存用完时构建会停止。增加 CPU 核心后,pm2 start server.js -i max 会为每个核心运行一个进程。您可以在面板中更改配置,您的数据和 IP 地址保持不变。
| 用途 | 配置 | 价格 | 选择 |
|---|---|---|---|
| 入门 | 1 GB RAM · 1 vCore · 25 GB NVMe | $2.58/月 | |
| 中等 | 2 GB RAM · 1 vCore · 40 GB NVMe | $4.01/月 | |
| 强劲 | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/月 |
适合谁?
- 用 Express、Fastify 或 NestJS 编写 API 的开发者
- 使用 WebSocket 的应用,Caddy 会把它们转发给您的进程
- 需要持续运行的机器人、队列 worker 和定时任务
- 宁愿自己运行一台普通服务器、也不想依赖部署平台的人
- 用户在土耳其、希望把 API 放在伊斯坦布尔的项目
下单之后会发生什么?
- 设定配置并完成付款。
- 服务器启动后,Node.js 会自行安装。在我们的真实服务器测试中,这大约用了 3 分钟。
- 在面板的“概览”标签页中打开“网站地址”链接。示例页面会显示 Node.js 的版本。
- 通过 SSH 连接,运行 su - app,并用 cd ~/uygulama 进入该文件夹。删除示例 server.js,再用 git clone 带入您的代码。
- 运行 npm install,然后运行 pm2 delete uygulama、用您自己的入口文件运行 pm2 start server.js --name uygulama,最后运行 pm2 save。
- 让您的应用监听 3000 端口。Caddy 会把收到的 HTTPS 请求转发给它。
每台服务器都包含
- 价格含每日备份
- 不限流量
- 完整 root 权限
- 之后可升级或降配 RAM 和 CPU,并扩大磁盘
- 位置:Istanbul · IST-1。
须知
- 如果您的应用监听其他端口,请修改 /etc/caddy/Caddyfile 中的 reverse_proxy 一行,并以 root 身份运行 systemctl reload caddy。
- 不运行 pm2 save,新的进程列表就不会被保存,重启后会恢复旧的列表。
- 不包含构建工具。对于需要编译原生模块的包,请以 root 身份运行 apt install build-essential。
- 没有安装数据库。请把您的应用连接到单独的数据库服务器,或者自己在这里安装一个。
- Node.js 保持在主版本 26。补丁通过 apt 提供,但是否运行 apt upgrade 以及升级到新的主版本由您决定。
- 如果证书无法签发,网站会通过 http 在您的 IP 地址上打开。
Node.js 常见问题
如何把 Node.js 应用部署到 VPS?
通过 SSH 连接,运行 su - app,并用 git clone 把代码带入 ~/uygulama。运行 npm install,用 pm2 start 启动应用,并用 pm2 save 保存。如果它监听 3000 端口,就会在您的 HTTPS 地址上打开。
Node.js 主机需要多少 RAM?
Node.js 没有官方的 RAM 数值。经验上,小型 API 从 1 GB 起步就不错,有构建步骤的项目用 2 GB,大型前端构建用 4 GB。如果不够,可以在面板中升级配置。
服务器重启后我的应用会自动恢复吗?
会。PM2 通过名为 pm2-app 的 systemd 服务在开机时启动,并恢复您用 pm2 save 保存的进程。启动新应用后,记得运行 pm2 save。
可以运行 Next.js 或 Express 吗?
可以,任何监听 3000 端口的 Node.js 应用都行。对于 Next.js,先运行 npm run build,再运行 pm2 start npm --name uygulama -- start。构建通常比运行应用需要更多内存,所以大型项目请先升级配置。
如何把我自己的域名连接到 Node.js 服务器?
把域名的 A 记录指向服务器的 IP 地址。把 /etc/caddy/Caddyfile 中所有出现旧名称的地方都替换为您的域名,然后以 root 身份运行 systemctl reload caddy。证书由 Caddy 自动获取并续期。
可以使用其他版本的 Node.js 吗?
可以,因为您有 root 权限。安装的是 26 LTS 版本。要用其他版本,请为 app 用户安装 nvm,并用 --interpreter 选项让 PM2 指向该版本的 node 可执行文件。