# 在阿里云服务器上部署 Vue 项目

# 第一步

先在服务器安装好宝塔(可用于上传文件,也可用于 pm2 部署接口)

image-20220506152702639

可以在此处上传打包好的 vue 项目

# 第二部

上传文件后,因为试过在宝塔的终端改 nginx 文件会报错,所以还是用阿里云的吧(垃圾宝塔)

image-20220506152722187

直接用阿里云自带的远程登录就好

# 第三步

安装 nginx

# 切换至 root 用户
sudo su root
apt-get install nginx
# 查看 nginx 版本,检查是否安装成功,一般默认安装路径为 /etc/nginx
nginx -v

# 第四步

配置 nginx

image-20220506152832382

找到文件后打开 default,最文件最后面加入代码即可,多个项目以此类推

主要要改三处地方,分别是①②③,其他不用动,多个项目一次类推

server {
  listen  80;
  server_name XX.XX.XX.XX;    # ①这里填域名,我没有域名就填了个ip地址,不填好像也可以把,没试过
 
  #charset koi8-r;
 
  #access_log logs/host.access.log main;
 
  location /wzry/web {		#②这里location后面接的是你的访问后缀,结合你上面的访问就是XX.XX.XX.XX/wzry/web
   alias  /project-for-localhost/wzry/web-dist;			#③这里填写你的项目的打包文件夹目录
   index index.html index.htm;
   try_files $uri $uri/ @router;
   index index.html;
  }
  #对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件
  location @router {
  #   #因此需要rewrite到index.html中,然后交给路由再处理请求资源
     rewrite ^.*$ /index.html last;
  }
  
  #下面重复,是第二个项目,以此类推
  location /wzry/admin {
   alias  /project-for-localhost/wzry/admin-dist;
   index index.html index.htm;
   try_files $uri $uri/ @router;
   index index.html;
  }
  #对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件
  location @router {
  #   #因此需要rewrite到index.html中,然后交给路由再处理请求资源
     rewrite ^.*$ /index.html last;
  }
}

# 第五步

重新启动 nginx

#如果启动过 nginx 的就先关闭 nginx 服务,没有启动过的,改语句不用执行
nginx -s stop   # 要进入的./nginx 目录下运行 如:/etc/nginx
#开启 nginx 服务
nginx   # 要进入的./nginx 目录下运行 如:/etc/nginx