第一部分:理解前端、后端和它们的协作方式

想象一个餐厅:

  • 前端:​ 就像餐厅的用餐区、菜单和服务员。它负责展示交互。顾客(用户)看到精美的菜单(界面),点菜(操作),服务员(前端)接收指令。

  • 后端:​ 就像后厨。它负责处理业务逻辑数据。服务员将订单传给后厨,厨师(后端)根据订单做菜、管理库存(数据库),然后把做好的菜(数据)交给服务员。

  • API:​ 就像服务员和后厨之间的订单小票。它是一种标准的沟通协议,前端通过 API 向后端发送请求(比如“我要查询用户A的信息”),后端处理完后,再通过 API 返回数据(比如 JSON 格式的用户信息)。

技术栈举例:

组成部分

具体技术举例

前端

- 框架: React, Vue.js, Angular
- 构建工具: Vite, Webpack
- 语言: HTML, CSS, JavaScript/TypeScript

后端

- 语言/框架: Node.js (Express), Python (Django, Flask), Java (Spring), PHP (Laravel)
- 数据库: MySQL, PostgreSQL, MongoDB, Redis

通信

RESTful API​ 或 GraphQL


第二部分:在本地修改和运行网站

当你从网上下载或克隆一个完整项目到本地后,通常需要以下步骤来运行它。

第1步:获取代码和环境准备

  1. 获取代码:通常是一个 Git 仓库。使用 git clone <仓库地址>命令将代码下载到你的电脑。

  2. 阅读文档这是最关键的一步!​ 在项目根目录下寻找 README.md文件。里面通常包含了项目简介、环境要求、安装和运行命令。

  3. 安装环境

    • Node.js:如果项目是前端或基于Node的后端,需要安装 Node.js,它会自带包管理工具 npm。通常推荐使用 nvm(Node Version Manager) 来管理多个Node版本。

    • Python/Java/PHP:根据后端语言安装对应的运行环境。

    • 数据库:如 MySQL、PostgreSQL。你可以选择安装到本地,或者使用 Docker 容器来运行,后者更干净、更方便。

第2步:安装依赖

现代项目会使用包管理器来管理第三方库。

  • 前端项目:进入项目根目录(通常有 package.json文件),运行:

    npm install
    # 或
    yarn install
    # 或
    pnpm install

    这会在项目里创建一个 node_modules文件夹,存放所有需要的库。

  • 后端项目:同样,进入后端代码目录,运行对应的命令(如 npm install, pip install -r requirements.txtfor Python, composer installfor PHP)。

第3步:配置环境变量

项目通常需要一个配置文件来设置环境相关的参数,例如数据库密码、API密钥等。这些敏感信息绝对不能直接写在代码里

  • 在项目根目录下寻找如 .env.example.env.local.example这样的文件。

  • 复制它,并重命名为 .env

  • 用文本编辑器打开 .env,根据你的本地环境修改配置,比如将数据库连接地址从云数据库改为 localhost

第4步:初始化数据库

  1. 创建数据库:在你的本地数据库管理系统(如MySQL)中,创建一个新的、空的数据库。

  2. 运行数据库迁移:许多现代后端框架使用“迁移”来管理数据库结构。运行类似以下的命令来创建数据表:

    # 例如在 Django 中
    python manage.py migrate
    
    # 在 Laravel 中
    php artisan migrate
    
    # 在某些 Node.js 框架中
    npx prisma migrate dev
  3. (可选)导入种子数据:有时需要一些初始数据(如管理员账号):

    php artisan db:seed
    python manage.py loaddata initial_data.json

第5步:启动服务

通常需要同时启动前端和后端两个服务。

  1. 启动后端服务:在后端项目目录下运行启动命令。服务通常会运行在某个端口,例如 http://localhost:3001

    # Node.js/Express 示例
    npm run start
    # 或开发模式(代码改动会自动重启)
    npm run dev
    
    # Python/Django 示例
    python manage.py runserver
    
    # Python/Flask 示例
    flask run
  2. 启动前端服务:打开另一个命令行窗口,进入前端项目目录,运行启动命令。前端开发服务器通常会运行在 http://localhost:3000

    npm run dev
    # 或
    npm start

    此时,浏览器会自动打开 http://localhost:3000,你就可以看到网站前端界面了。前端会通过你在其配置中设置的 API 地址(例如 http://localhost:3001)与后端通信。

本地修改:现在,你可以用 VS Code、WebStorm 等编辑器打开项目文件进行修改。前端或后端的开发服务器通常支持热重载,你保存代码后,浏览器页面会自动刷新看到变化。


第三部分:在服务器上搭建网站

服务器部署的核心目标是:让网站能够通过公网域名被任何人访问。流程与本地类似,但更强调稳定性、安全性和性能。

第1步:准备服务器

  1. 购买云服务器:选择阿里云、腾讯云、AWS 等厂商,购买一台云服务器(ECS)。通常选择 Linux 系统(如 Ubuntu、CentOS)。

  2. 远程连接:通过 SSH 工具(如 Terminal、PuTTY)连接到你的服务器。

  3. 服务器初始化:更新系统软件、创建新用户、配置防火墙(开放 80/HTTP、443/HTTPS、22/SSH 端口)。

第2步:在服务器上配置环境

和在本地一样,在服务器上安装所需环境:Git、Node.js、Python、数据库(如 MySQL)等。使用 Docker 来部署所有环境是当前最流行和推荐的方式,可以避免环境冲突问题。

第3步:部署代码和配置

  1. 拉取代码:使用 Git 将你的代码仓库克隆到服务器上。为了安全,通常配置 SSH 密钥​ 而非密码来拉取私有仓库。

  2. 安装依赖和构建:和本地步骤类似,安装依赖。但关键的一步是构建前端代码

    npm run build

    这个命令会将 Vue/React 代码编译、压缩成纯粹的 HTML、CSS、JS 文件,存放在 distbuild文件夹中。在生产环境,我们不需要 npm run dev,而是直接提供这些构建好的静态文件

第4步:配置 Web 服务器和进程管理

  1. 进程管理(用于后端):我们需要一个工具来保证后端进程持续运行,即使崩溃也能自动重启。常用工具有:

    • PM2​ (Node.js):非常简单易用。

      # 启动一个Node.js应用并守护它
      pm2 start app.js --name "my-api"
      pm2 startup # 设置开机自启
  2. Web 服务器(用于提供前端文件和反向代理)

    • Nginx:最主流的选择。

      • 将前端构建好的静态文件(dist目录)放到服务器某个位置(如 /var/www/html)。

      • 配置 Nginx,让它处理来自域名的请求。

        • 当用户访问 https://www.mysite.com,Nginx 直接返回前端静态文件。

        • 当前端需要调用 API(如 /api/users),Nginx 会将这个请求反向代理给在本地某个端口(如 3001)运行的后端 Node.js 服务。

      • 这样,浏览器只与 Nginx 通信,避免了直接暴露后端服务,更安全。

第5步:配置域名和 HTTPS

  1. 域名解析:在你的域名注册商那里,将你的域名 A 记录解析到云服务器的公网 IP 地址。

  2. 安装 SSL 证书:使用 Let‘s Encrypt​ 的 certbot工具,可以免费、自动化地为你的域名配置 HTTPS。Nginx 配置 SSL 后,所有 HTTP 请求都会被重定向到安全的 HTTPS。

(高级/推荐)使用 Docker 和 Docker Compose 一键部署

这是现代部署的最佳实践。你可以编写一个 docker-compose.yml文件,定义所有服务(Nginx、后端、数据库、Redis等)。在服务器上,只需一个命令即可启动整个应用栈:

# 一键启动所有服务
docker-compose up -d

# 一键停止和清理
docker-compose down

这种方式极大地简化了部署流程,保证了环境的一致性。

总结

阶段

核心任务

关键工具/命令

本地开发

1. 准备环境
2. 安装依赖
3. 配置和初始化数据库
4. 同时运行前后端服务

git clone, npm install, 修改 .env, npm run dev

服务器部署

1. 配置服务器环境
2. 构建前端代码
3. 使用进程管理守护后端
4. 配置 Nginx 反向代理和 HTTPS

npm run build, pm2, Nginx, certbot

现代化部署

使用容器化技术,简化流程

Docker, docker-compose.yml