轻松部署Vue项目到云服务器
服务器准备 → 安装 Nginx/Node →git clone项目 →→ 配置 Nginx 指向dist目录 → 添加try_files和proxy_pass→ 重启 Nginx → 搞定!你已经从 0 到 1 完成了整个部署流程,并且解决了两个最核心的部署问题。恭喜你!
我将为你提供一个保姆级、从零开始的完整教程,假设你现在只有一台电脑和未打包的 Vue 项目代码。
我们将一步步完成:
- 购买和配置云服务器
- 在服务器上安装必要环境 (Nginx, Node.js)
- 上传并打包你的 Vue 项目
- 编写 Nginx 配置,解决所有问题
- 启动服务,成功访问!
🚀 第一步:准备工作 (购买并连接服务器)
1. 购买一台云服务器 (ECS/VPS)
如果你什么都没有,第一步就是“搞一台服务器”。
- 服务商:阿里云、腾讯云、华为云、DigitalOcean、Vultr 等。对新手来说,国内的阿里云/腾讯云有中文界面和学生优惠,比较友好。
- 配置选择:
- 地域:选离你或你的用户近的。
- 操作系统 (OS):选择 Ubuntu 20.04 或更高版本。这是最流行、教程最多的 Linux 系统之一。
- 套餐:买最便宜的入门级就行,比如
1核2G或2核2G,足够部署 N 个前端项目了。
- 购买后:你会得到三个关键信息:
- 公网 IP 地址 (例如:
123.45.67.89) - 用户名 (通常是
root) - 密码 (你设置的或系统生成的)
- 公网 IP 地址 (例如:
2. 连接到你的服务器
你需要一个 SSH 工具来远程登录并操作服务器。
- Windows 用户:推荐使用
Windows Terminal,Xshell,PuTTY或Git Bash。 - Mac/Linux 用户:直接使用系统自带的
终端 (Terminal)。
打开你的终端,输入以下命令并回车:
ssh root@你的服务器公网IP地址
例如:ssh root@123.45.67.89
首次连接会提示一个安全警告,输入 yes。然后输入你的服务器密码(注意:输入密码时屏幕上不会显示任何东西,这是正常的),回车。
当你看到类似 Welcome to Ubuntu ... 和 root@your-server-name:~# 的提示符时,恭喜你,你已经成功登录到你的服务器了!
🚀 第二步:在服务器上安装环境
登录服务器后,我们需要安装 Nginx(Web 服务器)和 Node.js(用于打包项目)。
1. 安装 Nginx
依次执行以下命令:
# 1. 更新软件包列表
apt update
# 2. 安装 Nginx
apt install nginx -y
# 3. 启动 Nginx 并设置开机自启
systemctl start nginx
systemctl enable nginx
# 4. (可选) 检查 Nginx 状态
systemctl status nginx
看到 active (running) 就表示 Nginx 已经成功运行了。此时,在浏览器中直接访问你的服务器公网 IP 地址,应该能看到 Nginx 的欢迎页面!
2. 安装 Node.js 和 npm
我们用 nvm (Node Version Manager) 来安装,方便切换版本。
# 1. 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
# 2. 让 nvm 生效
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
# 3. 安装一个稳定的 Node.js 版本 (例如 LTS/Gallium v16)
nvm install 16
# 4. 设为默认版本
nvm use 16
nvm alias default 16
# 5. 验证安装
node -v # 应该显示 v16.x.x
npm -v # 应该显示 npm 版本
3. 安装 Git
我们需要用 Git 把你的项目代码拉到服务器上。
apt install git -y
🚀 第三步:上传并打包你的 Vue 项目
1. 将你的项目上传到代码仓库
确保你的本地 Vue 项目已经上传到了一个 Git 仓库,比如 GitHub、Gitee 或 GitLab。
2. 在服务器上克隆项目
我们通常把网站项目放在 /var/www/ 目录下。
# 1. 创建一个项目目录
mkdir -p /var/www
# 2. 进入该目录
cd /var/www
# 3. 从你的仓库克隆项目 (把 URL 换成你自己的)
git clone https://github.com/your-username/your-vue-project.git
# 4. 进入项目目录
cd your-vue-project
# 5. 安装项目依赖 (国内服务器用 cnpm 或 pnpm 可能更快)
npm install
# 6. 打包项目!
npm run build
执行完 npm run build 后,项目根目录下会生成一个 dist 文件夹,这里面就是我们要部署的静态文件。它的绝对路径是 /var/www/your-vue-project/dist。记住这个路径!
🚀 第四步:编写 Nginx 核心配置(解决所有问题!)
这是最关键的一步。我们要告诉 Nginx 如何处理用户的访问请求。
1. 创建一个新的 Nginx 配置文件
不要直接修改主配置文件,我们为自己的网站创建一个独立的配置。
# 使用 nano 编辑器创建一个新配置文件 (名字可以自定义)
nano /etc/nginx/sites-available/my-vue-app.conf
2. 粘贴并修改以下配置模板
将下面的内容完整复制到打开的 nano 编辑器中。你需要修改 server_name 和 root 路径。
server {
listen 80;
# 监听 80 端口 (HTTP)
# -------------------【你需要修改的地方】-------------------
# 1. 如果你有域名,写你的域名;如果没有,写你的服务器公",IP 地址
server_name 你的域名或公网IP;
# 2. 指向你项目打包后的 dist 文件夹的绝对路径
root /var/www/your-vue-project/dist;
# ---------------------------------------------------------
index index.html index.htm;
# 核心配置 1: 解决 VueRouter 的 history 模式白屏问题
# 所有的请求都先尝试匹配文件($uri),再尝试匹配目录($uri/),
# 如果都找不到,就返回 /index.html,让 Vue Router 去接管。
location / {
try_files $uri $uri/ /index.html;
}
# 核心配置 2: 解决跨域的反向代理
# 当前端请求 /api/users 时,Nginx 会把它转发到 http://localhost:3000/users
location /api/ {
# 这里的地址是你的后端 API 服务器地址
# 如果后端服务也在这台服务器上,通常是 localhost 或 127.0.0.1
proxy_pass http://localhost:3000/;
# (可选) 如果后端接口本身没有 /api 前缀,需要重写
# rewrite ^/api/(.*)$ /$1 break;
# (推荐) 传递一些必要的请求头
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# (可选) 错误页面配置
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
3. 保存并退出编辑器
- 按
Ctrl + X - 提示是否保存,按
Y - 提示文件名,直接按
Enter确认
4. 激活配置并重启 Nginx
# 1. 创建一个符号链接,将你的配置“激活”
ln -s /etc/nginx/sites-available/my-vue-app.conf /etc/nginx/sites-enabled/
# 2. 测试 Nginx 配置语法是否有错误
nginx -t
如果看到 syntax is ok 和 test is successful,说明配置没问题。
# 3. 平滑重启 Nginx 以应用新配置
systemctl reload nginx
🚀 第五步:大功告成,验证结果!
1. 开放防火墙端口
云服务器通常有防火墙,需要允许外部访问 80 端口。
# 检查防火墙状态 (如果 inactive 就不用管了)
ufw status
# 如果是 active,允许 Nginx 的 HTTP 流量
ufw allow 'Nginx HTTP'
# 重载防火墙
ufw reload
2. 访问你的网站
现在,打开你的浏览器,输入你的服务器公网 IP 地址或你配置的域名。
你应该能看到你的 Vue 项目首页了!
3. 验证功能
- History 模式:尝试手动在地址栏输入一个深层路径(例如
http://你的IP/about),然后按回车。如果页面能正确显示而不是 404,说明try_files配置成功了! - 反向代理:点击你应用中会触发 API 请求的按钮(例如登录)。打开浏览器开发者工具 (F12) 的 Network 面板,查看请求。你会发现请求的地址是
http://你的IP/api/...,并且能成功拿到后端数据,说明反向代理配置成功了!
总结一下流程:
服务器准备 → 安装 Nginx/Node →
git clone项目 →npm install&npm run build→ 配置 Nginx 指向dist目录 → 添加try_files和proxy_pass→ 重启 Nginx → 搞定!
你已经从 0 到 1 完成了整个部署流程,并且解决了两个最核心的部署问题。恭喜你!
更多推荐
所有评论(0)