本地能跑别人访问不到?一文讲清 Web 项目部署的五个核心步骤

本地能跑别人访问不到?一文讲清 Web 项目部署的五个核心步骤

你是否遇到过这样的场景:项目在自己的电脑上运行得完美无缺,但发给朋友一个链接,对方打开却是白屏,或者根本连接不上?

这通常不是代码写错了,而是你还没有完成部署

很多初学者容易混淆“本地运行”与“线上访问”的概念。简单来说,项目在你电脑能跑,不代表别人能打开。本期内容将为你厘清部署的本质,并拆解让项目真正上线所需的五个核心步骤。

``

为什么本地能跑,别人却访问不到?

问题的根源在于网络地址的差异。

当你在本地运行项目时,浏览器访问的地址通常是 localhost127.0.0.1。这是本地回环地址,意味着只有你自己的电脑才能访问这个服务。对于外部网络而言,这个地址是不可见的。

即使你和朋友在同一个 WiFi 下,他们也需要使用你电脑的局域网 IP 才能访问。然而,一旦网络环境发生变化(例如你换了地方,或者朋友不在同一局域网),这种连接就会立即失效。

本地回环与公网可见性

部署解决的就是这个问题。它的核心目的是将你的程序从本地电脑迁移到一台拥有公网 IP24 小时不间断运行的服务器上。只有这样,全球用户才能通过稳定的地址访问到你的应用。

部署具体做了哪五件事?

将一个本地项目成功部署到线上,通常包含以下五个关键步骤:

1. 代码上传与同步

首先,需要将本地写好的代码传输到服务器上。常见的做法有两种:

  • 版本控制方式:通过 Git 将代码推送到代码仓库(如 GitHub、GitLab),然后在服务器上从仓库拉取最新代码。
  • 直接上传方式:使用 FTP、SCP 等工具直接将代码文件上传至服务器指定目录。

代码上传的两种路径

2. 安装运行环境

服务器通常是一台“干净”的机器,出厂时并没有预装你项目所需的运行时环境。

  • 如果项目基于 Node.js,服务器可能没有安装 Node.js 环境。
  • 如果项目基于 Python,服务器可能缺少 Python 解释器。

因此,必须在服务器上安装对应的运行时,并通过包管理器(如 npm installpip install)安装项目依赖的所有第三方库。

服务器环境初始化

3. 配置环境变量

在本地开发时,我们常在 .env 文件中存储数据库地址、API 密钥等敏感信息。切记,这些文件不应直接上传到服务器或公开仓库。

线上环境与本地环境往往不同:

  • 线上使用的数据库地址可能与本地不同。
  • 线上使用的 API 密钥可能需要单独申请。

因此,需要在服务器上单独配置环境变量,确保程序能正确读取线上的配置信息。

4. 启动程序并持久化运行

在本地,你可能习惯在终端输入 npm start 来启动程序。但一旦关闭终端窗口,程序就会停止运行。

在线上服务器,程序必须持续在后台运行,且具备容错能力。为此,我们需要使用进程管理工具(如 PM2)。PM2 可以确保:

  • 程序在后台常驻运行。
  • 如果程序意外崩溃,PM2 会自动重启它,保证服务的高可用性。

5. 配置对外入口(反向代理)

程序在服务器上运行时,通常监听的是特定端口(例如 3000 端口)。但用户访问时,习惯使用域名或标准的 HTTP/HTTPS 端口(80 或 443)。

这时需要引入 Nginx 等反向代理服务器:

  • Nginx 监听 80/443 端口,接收用户的请求。
  • 将请求转发给后端程序监听的 3000 端口。
  • 处理静态资源、SSL 证书等事宜。

反向代理流量转发

总结

只有走完以上五步——代码上传、环境安装、变量配置、进程守护、反向代理,你的项目才算真正完成了部署,从“本地玩具”变成了“线上产品”。

你部署过项目吗?使用的是云服务器、Vercel、Netlify 还是其他平台?欢迎在评论区分享你的经验。