vercel 部署 node 服务和解决 vercel 不可访问的问题

前言

本文假定你已具备以下条件:

  • 掌握 node 基础知识
  • 拥有 github 账号并掌握 git 基础知识
  • 对域名 DNS 解析和服务部署有一定的了解

什么是 Vercel

Vercel 是一个为开发者提供的平台,它提供了构建和部署您的网络应用所需的所有工具、工作流程和基础设施,无需额外配置。

Vercel 支持开箱即用的流行的前端框架 ,其可扩展、安全的基础设施在全球范围内分布,以便从靠近用户的数据中心提供内容,以实现最佳速度。

开发过程中,Vercel 提供了实时协作工具,例如自动预览和生产环境,以及预览部署的评论功能。(此功能需要升级到 Pro 服务非免费提供)

what is vercel

Vercel is a platform for developers that provides the tools, workflows, and infrastructure you need to build and deploy your web apps faster, without the need for additional configuration.

Vercel supports popular frontend frameworks out-of-the-box, and its scalable, secure infrastructure is globally distributed to serve content from data centers near your users for optimal speeds.

During development, Vercel provides tools for real-time collaboration on your projects such as automatic preview and production environments, and comments on preview deployments.

vercel 免费提供部署静态网站和Serverless Functions 服务。但是 vercel 的部署服务默认提供的域名在国内无法访问,需要更换自己的域名来访问服务。

使用 vercel 部署 node 服务

  1. 进入到项目中,点击右上角的 add new.. --> project 选择 express.js on vercel 模板进行创建项目,绑定到自己的 github 仓库中。

  2. 使用 git clone 到本地,并安装依赖。

  3. 使用 vercel cli 本地预览 vercel 服务。

vercel cli 是 vercel 的命令行工具,可用于本地预览 vercel 服务。 安装 Vercel CLI:

bash 复制代码
npm i -g vercel

登录 vercel 账号(如果还没有账号,请先注册):

bash 复制代码
vercel login

然后在存储库的根目录运行该应用程序:

bash 复制代码
vercel dev 

调试好代码后提交到 github 仓库中,vercel 会自动部署服务。

这里有几个坑需要注意:

  1. vercel 环境与普通 node 环境有所不同,无法直接移植运行一般的 express 项目。代码会略有不同,例如,vercel 会自动分配端口,不需要使用 listen 方法监听端口。详细的差异请参考 官方文档
  2. vercel 的部署默认情况下只有和 vercel 绑定的 git 账户提交的 commit 才会自动部署,其他账户提交的commit 不会自动部署。如果需要其他账户提交的commit 也自动部署,需要将其他账户的 git 账户添加到 vercel 中(此功能需要升级服务非免费提供)。

解决 vercel 不可访问的问题

vercel 部署服务默认提供的域名在国内无法访问,需要更换自己的域名来访问服务。

  1. 准备好一个域名,在 vercel 项目 settings 中点击 Domains --> Add domain ,添加域名解析记录并复制项目部署的 ip 地址。例如 xxx.xxx.com,ip 地址为 xx.xx.xx.xx

  2. 在域名的 DNS 服务商中添加 xxx.xxx.com 的解析记录,解析记录的 ip 地址为 xx.xx.xx.xx

  3. 回到 vercel 项目 settings--> Domains 中查看域名解析生效后即可通过 xxx.xxx.com 访问服务。

相关推荐
漂流瓶jz6 小时前
Webpack如何实现万物皆可import?loader的使用/配置/手写实践
前端·javascript·webpack
ZC跨境爬虫6 小时前
跟着 MDN 学CSS day_41:显式轨道、隐式网格与区域命名放置
前端·javascript·css·ui·交互
修己xj7 小时前
告别手动存图!这款叫 Fatkun 的浏览器插件,简直是素材收集神器
前端
袋鼠云数栈8 小时前
从前端到基础设施,ACOS 如何打通企业全链路可观测
运维·前端·人工智能·数据治理·数据智能
AskHarries8 小时前
系统提示词、开发者指令和用户输入的优先级
java·前端·数据库
Moment8 小时前
长上下文会最终杀死 Rag 吗?
前端·javascript·后端
qcx239 小时前
【系统学AI】25 论文导读 ①:两篇改变 AI 的开山之作——Attention Is All You Need & ReAct
前端·人工智能·react.js·transformer
kyriewen10 小时前
大文件上传最全指南:分片、断点续传、秒传,一篇就够了
前端·javascript·面试
我叫黑大帅10 小时前
解决聊天页内部滚轮改为页面滚动问题
javascript·后端·面试
郑洁文10 小时前
基于Python的Web命令执行漏洞自动化检测系统
前端·python·网络安全·自动化