前言:
前后端分离,前后端项目往往分开部署,有的甚至部署到不同的服务器,大二的软件工程团队作业项目强后端分离,下面讲下用Nginx部署Vue项目及遇到的坑。
Vue项目打包
打开命令行进入项目根目录
注:本机需先安装NodeJS
1 2 3 4 5 6
| npm install
npm run serve
npm run build
|
将整个dist目录上传到服务器
Nginx环境搭建
这里使用docker的Nginx镜像快速搭建。
连接云服务器,命令行输入如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
docker search -s 100 nginx INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/nginx Official build of Nginx. 13876 [OK]
docker pull nginx
docker images
docker run --name nginx -p 本机端口:容器端口(nginx默认80) -d (后台运行) -v ……/nginx.conf(服务器配置文件路径):/etc/nginx/nginx.conf(容器配置文件路径) -v ……/dist(前端打包文件上传路径):/usr/share/nginx/html(容器内部目录) nginx:latest (镜像名或id)
|
配置Nginx
注:此处若未配置 try_files $uri $uri/ /index.html;项目除根路径外刷新后会直接报404,下面有说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| vim ……/nginx.conf(服务器上映射的配置文件)
server { listen 80; server_name 【你的域名或ip】;
location / { root /usr/share/nginx/html;
index index.html index.htm; try_files $uri $uri/ /index.html; }
error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
|
改完后保存退出。
执行docker restart nginx 重启容器后配置生效
到此部署结束
扩展Nginx热加载
docker exec -it nginx /bin/bash 进入容器,执行 service nginx reload 按ctrl+P+Q退出容器
或者直接docker exec -i nginx(容器名) service nginx reload (执行命令)
Nginx指令(Windows)
1 2 3 4 5 6 7 8 9
| start nginx
nginx -s reload
nginx -s stop nginx -s quit
nginx -v
|
END