怎么把vue项目部署到云服务器,vue项目部署需要什么环境?

把Vue项目部署到云服务器上去,核心思路就三步:本地构建打包、服务器环境配置、Nginx反向代理托管静态文件。无论你是第一次买服务器还是已经折腾过几回,这篇文章按实际操作的先后顺序来写,照着做就能跑通。

部署前先搞懂Vue项目部署的本质

很多人一上来就搜“vue项目部署到服务器”,其实得先明白一件事:Vue打包后只是一堆静态文件(HTML、CSS、JS),不需要Node运行环境,只需要一个能托管静态文件的Web服务器,这也是为什么Nginx成为最常见的部署方案。

Vue、 Nodejs Express 打包发布外网云服务器 (完结)
加载中
Vue、 Nodejs Express 打包发布外网云服务器 (完结)

本地构建:npm run build到底做了什么

开发时你跑的是npm run serve,这起的是开发服务器,带热更新,但性能差,部署要用生产构建,命令一般是:

npm run build

执行后项目根目录会出现一个dist文件夹,里面就是所有要上传的文件,如果构建失败,先检查有没有报错信息,最常见的是语法错误或者依赖缺失。

确认打包产物路径

Vue CLI项目默认输出到dist,Vite默认也是dist,如果你想改路径,在vue.config.js里加publicPath配置,Vite则在vite.config.js里改base,用默认值就行,不用动。

云服务器选型和基本设置

这里涉及常见的价格因素,国内主流云厂商轻量应用服务器,入门配置1核2G内存,价格大概在每年几十到一百多元,带宽按量或固定带宽可选,个人学习或小项目完全够用,如果是面向正式用户,建议2核4G起步。

操作系统选哪个

推荐选Ubuntu 22.04 LTS或CentOS 7/8,但CentOS官方停止维护后,新用户建议直接Ubuntu,系统装好后,用SSH连上去,Windows用户用终端或Xshell,macOS/Linux直接终端。

安全组和防火墙放行端口

云服务商控制台里的“安全组”或“防火墙”规则,默认只开放22端口(SSH),你要放行:

  • 80端口(HTTP)
  • 443端口

    怎么把vue项目部署到云服务器,vue项目部署需要什么环境?

    (HTTPS,如果用域名证书)

  • 其他端口按需添加

不放行80端口,外网永远访问不到你的Nginx页面,这是新手最容易踩的坑。

服务器上安装Nginx并配置

这里写Ubuntu下的命令,CentOS用户把apt换成yum即可。

安装Nginx

sudo apt update
sudo apt install nginx -y

装完后启动并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

此时在浏览器输入服务器公网IP,如果看到Nginx欢迎页,说明Web服务已经跑起来了。

上传dist文件夹到服务器

推荐用scp命令,在本地项目目录执行:

scp -r ./dist root@你的服务器IP:/var/www/

如果使用密钥登录,加-i 密钥文件路径,也可以用FileZilla等图形化工具,直接拖拽上传,效果一样。

修改Nginx配置指向dist目录

Nginx的默认站点配置文件在/etc/nginx/sites-available/default(Ubuntu)或/etc/nginx/conf.d/default.conf(CentOS),编辑它,把root指向你上传的dist路径:

server {
    listen 80;
    server_name your-domain.com;  # 没有域名就填服务器IP
    root /var/www/dist;
    index index.html;
    location / {
        try_files $uri $uri/ /index.html;
    }
}

这一段最关键的是try_files $uri $uri/ /index.html;。Vue是单页应用,前端路由靠History模式管理,刷新子路由时如果找不到对应文件,必须回退到index.html,否则页面会404。

改完保存,检查配置并重启:

sudo nginx -t
sudo systemctl reload nginx

处理接口跨域问题

如果你的Vue项目里请求的是/api接口,而后端服务跑在另一个端口(比如8080),需要在Nginx里加反向代理,在server块里加:

location /api/ {
    proxy_pass http://127.0.0.1:8080/;
}

这样前端请求/api/user就会转发到后端的/user

怎么把vue项目部署到云服务器,vue项目部署需要什么环境?

,同时解决了跨域,注意proxy_pass结尾的斜杠有没有,有和没有代理的路径拼接规则不同,实操时容易出错。

用域名和HTTPS让项目更专业

只通过IP访问能用,但如果你打算给别人用或者上线,绑定域名是必要的,国内服务器绑定域名还有一个现实要求:域名必须先完成ICP备案,否则80端口会被拦截,这是国内云服务器的常见限制,如果你买的是中国香港或海外服务器,则不需要备案。

域名解析到服务器

在DNS服务商后台,加一条A记录,把域名指向你的服务器IP,解析生效后,把Nginx配置里的server_name改成你的域名,然后sudo systemctl reload nginx。

配置免费的HTTPS证书

现在浏览器对HTTP网站越来越不友好,用Let’s Encrypt或者简米云/酷番云的免费证书都行,以certbot为例,一行命令搞定:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your-domain.com

按提示操作,certbot会自动修改Nginx配置并启用HTTPS,证书有效期90天,记得用sudo certbot renew设置定时续期任务。

部署完成后怎么验证是否成功

上传配置完,不要在浏览器里草率看一眼首页就完事,按下面的清单逐项验证:

  • 在浏览器访问域名或IP,页面正常加载
  • 手动刷新子路由页面(比如/about),没有404
  • 打开浏览器开发者工具,Network面板里没有红色报错
  • 如果配置了/api代理,登录或数据请求能正常返回
  • 在手机上用流量访问,确认没有局域网限制导致的误判

一个常见的坑:打包路径导致静态资源404

如果你部署后发现页面白了,但HTML能打开,打开控制台看到js/css文件都返回404,多半是打包时的publicPath写成了绝对路径,Vue CLI项目在vue.config.js里设置:

module.exports = {
    publicPath: './'
}

怎么把vue项目部署到云服务器,vue项目部署需要什么环境?

Vite项目则在vite.config.js里设置:

export default {
    base: './'
}

改成相对路径,静态资源就能正常加载。

更新迭代部署的两种方式

项目上线后不可能不更新,每次改完代码,重新npm run build,把新的dist覆盖到服务器/var/www/dist,推荐用两种方式:

手动覆盖,简单直接

本地重新构建,然后重新scp上传,缺点是如果网络中断可能导致目录不完整,但个人项目足够。

用Git钩子或CI/CD自动部署

在服务器上用Git拉取代码,然后本地服务器执行构建,再把产物放到网站目录,或者用Jenkins、GitHub Actions,提交代码后自动部署,这适合团队项目,但配置成本高,不是必需。

常见问题解答

部署Vue项目需要买多大配置的云服务器?

个人博客、后台管理系统等中小型项目,1核2G配置足够日常使用,即使有数据库和Nginx也能跑稳,用户量大、并发高再考虑升级到2核4G,带宽方面,普通图文项目2M-5M足够,有视频或大量图片就选按带宽计费。

Vue项目一定要用Nginx吗,用Node启服务行不行?

可以,把dist当成静态目录,用node写个静态服务脚本也能跑,但生产环境不推荐,Node服务没有Nginx成熟的安全防护、静态文件处理效率也低,行业共识认为,Nginx是目前前端静态文件部署的首选方案,尤其适合单页应用的路由配置。

为什么我的Vue项目在服务器上刷新页面就404?

因为Vue Router默认使用HTML5 History模式,刷新的路径在服务器上找不到真实文件,解决办法就是在Nginx的location /里加try_files $uri $uri/ /index.html;,让所有路径回退到入口页面,如果不想配置,也可以改成Hash模式,URL里会出现,不美观但能避免这个问题。

把构建产物和反向代理这两件事理顺,Vue项目上云就是重复执行同一套流程,先从最简IP加Nginx跑通,再逐步加域名、加HTTPS,稳扎稳打就能把项目正式挂到线上。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/708080.html

赞 (0)
成都大带宽服务器月租多少钱?,成都服务器租用价格2026。
上一篇 2026年10月4日 16:15
本地文件怎么传到Linux服务器,Linux上传命令是什么?
下一篇 2026年10月4日 16:15

相关推荐

  • 进别人qq空间显示服务器错误怎么回事啊

    进别人QQ空间显示服务器错误,多数情况下是腾讯服务器临时波动或本地网络缓存异常,不代表对方把你拉黑或屏蔽,先切换WiFi和流量、清理QQ缓存、更新版本,基本能解决大半问题,进别人qq空间显示服务器错误,是对方设置权限吗?很多用户看到“服务器错误”第一反应是对方设置了访问权限,甚至怀疑自己被单方面屏蔽,实际情况并……

    2026年9月20日
    100
  • 为什么玩CF进不去服务器,连接失败怎么办?

    玩CF进不去服务器失败,绝大多数情况下是本地网络环境或客户端组件出了问题,而不是官方服务器崩溃,按本文的排查顺序操作,基本能解决,先分清是哪种“进不去”很多玩家一着急就重装游戏,其实先看一眼报错提示,能省下大半天时间,常见的失败场景无非就三种:卡在“正在连接服务器”:进度条半天不动,最后弹“连接超时”,这种大概……

    2026年8月13日
    1600
  • 华为服务器只有一个C盘怎么分区?,服务器硬盘如何重新分盘教程

    华为服务器只有一个C盘,最直接的解决办法是先在“磁盘管理”里用“压缩卷”挤出剩余空间,再新建分区;如果C盘已经写满或压缩不动,就借助第三方分区工具无损调整C盘大小,全程不需要重装系统,动手之前先确认磁盘模式、分区表类型和数据备份情况,避免分区动作触发引导故障,华为服务器怎么分盘?先搞懂为什么只有C盘很多华为服务……

    2026年9月7日
    200
  • 苹果激活ID服务器失败怎么办,激活时连不上服务器什么原因

    多数情况下不是你的Apple ID密码错误,而是设备到苹果激活服务器之间的网络链路被卡住,先切换网络、重启设备、改DNS,通常能绕过这个报错,苹果激活id服务器失败原因有哪些?先按场景对号入座激活时遇到登录id服务器失败,常见提示有“无法连接到Apple服务器”“验证失败”“激活服务器暂时不可用”,别急着怀疑账……

    2026年9月20日
    3900
  • 合肥AI图像公司算力与带宽组合租用方案怎么选,哪家好?

    合肥AI图像公司的算力与带宽组合租用,核心策略是“按任务类型拆解需求,GPU算力与公网带宽按3:1比例规划预算,优先选支持弹性扩容的IDC服务商”,组合租用不是简单地把服务器和带宽塞进一个合同,而是要根据图像处理流程中的训练、推理、渲染三大场景,分别匹配计算密度和网络吞吐量,否则就会出现GPU空转等带宽或者带宽……

    2026年8月10日
    700
  • Excel VBA菜单怎么设置,有哪些方法?

    使用VBA在Excel中创建自定义菜单,是提升工作效率、实现自动化操作的核心手段,能让你根据业务需求灵活定制功能入口,无需依赖第三方插件,为什么需要VB Excel菜单日常办公中,我们经常重复执行某些固定操作,比如数据清洗、报表生成、格式调整,把这些操作打包成VBA宏,再通过自定义菜单一键调用,能大幅减少鼠标点……

    2026年7月15日
    2300
  • AJAX跨域请求JSONP获取JSON数据实例代码怎么写?前端JSONP跨域解决方案

    JSONP是一种利用标签不受同源策略限制的特性,通过回调函数机制实现跨域获取JSON数据的经典方案,虽然现代开发中CORS已逐渐取代其地位,但在兼容老旧系统时仍具实用价值,在Web开发的早期阶段,浏览器严格的同源策略像一道铁壁,挡住了不同域名之间的数据交互,开发者们为了突破这道墙,摸索出了JSONP这种“曲线救……

    2026年5月31日
    3100
  • 怎么在自己的服务器上搭建一个git

    在自己的服务器上搭建Git,本质上就是安装Git软件、创建一个裸仓库,并通过SSH协议让客户端连接,个人使用推荐“Linux服务器+Git裸仓库+SSH”方案,团队协作则推荐部署Gitea或GitLab,成本低且可控性强,搭建前先想清楚:你的服务器适合哪种Git方案很多朋友一上来就搜“怎么在自己的服务器上搭建一……

    2026年8月26日
    800
  • 轻客户端怎么借助共识层验证区块头,区块链轻节点如何同步数据?

    轻客户端验证区块头的核心逻辑,是只下载并校验区块链的“头部凭证”,把共识层计算出的合法性证明套用到每一个区块头,从而在不保存完整区块体的情况下判断链是否正确,轻客户端怎么验证区块头?先看清共识层留下的证据区块头不是一串枯燥的元数据,而是共识层交出的成绩单,每一轮出块,网络都要回答三个问题:谁有资格出块、这个块是……

    2026年9月12日
    000
  • 录播课按章节售卖的内容如何加密存储,有哪些加密方法?

    录播课按章节售卖,加密存储的核心思路是“一章节一密钥、一用户一授权”,用动态加密+分段存储替代整包加密,让盗版者拿到文件也解不开,解开也拼不全,按章节卖课,加密存储的难点在哪章节售卖的模式和整课售卖有本质区别,整课卖,用户买的是一整个文件包的访问权,加密做在文件层就够了,按章节卖,用户可能只买第3章、第7章,或……

    2026年9月8日
    000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注