vue vue-router(history模式) node(express)项目部署到云主机上的nginx配置思考
我个人想了2种部署方案
1、将vue项目打包后放入node服务端的静态资源中访问
整体结构基本是这样的

这样在云主机上的nginx配置就很简单
server {
listen 80;
# 你的域名
server_name xxxxx.com;
location / {
# 你的node服务进程
proxy_pass http://localhost:8088;
}
}但这样有一个问题,如果你的vue-router是history模式的话,你刷新或者手动输入url访问将会是404,你也很难通过修改nginx配置来规避这个错误(因为并不需要在nginx配置里面指定根目录)
解决办法:
vue官方
基于 Node.js 的 Express
对于 Node.js/Express,请考虑使用 connect-history-api-fallback 中间件。
这个方法我没有尝试过,不过应该是可行的!
这样的优点是很简便,适合小型的网站项目
2 将打包的vue项目和node服务端分别部署
server {
listen 80;
server_name xxx.com;
# 客户端
location / {
# 根目录
root html/client;
# 主页
index index/html index/htm;
# 避免history模式刷新404
try_files $uri $uri/ /index.html;
}
# 管理控制后台
location /admin {
root html/admin;
index index/html index/htm;
try_files $uri $uri/ /index.html;
}
# 服务端
# api
location /api {
proxy_pass http://localhost:8088;
# 跨域
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
}
}这样部署虽然稍微麻烦一点,但可以适应很多场景,而且开发分工更方便,结构也一目了然
相关推荐
boneix 2020-10-21
seanzed 2020-10-15
ifconfig 2020-10-14
学留痕 2020-09-20
往后余生 2020-09-17
kka 2020-09-14
redis 2020-09-07
lzccheng 2020-09-06
soyo 2020-08-31
stonerkuang 2020-08-18
LxyPython 2020-08-17
raksmart0 2020-08-17
Lzs 2020-08-14
MrHaoNan 2020-07-31
80530895 2020-07-05
lengyu0 2020-06-28
YarnSup 2020-06-28
huanglianhuabj00 2020-06-27