我想知道在与快速后端分开部署vue前端时正确的nginx设置-不是在服务器或域方面,而是在服务方式方面。
在开发过程中,我在vue目录中使用npm serve
,并通过npm run build
生成生产版本。应该为生成的dist
文件夹提供服务,我的问题是,当后端在同一服务器上时,如何完成此操作。
对于后端来说,表达是公开路线。 nginx是否应该在Express前面?
Vue前端正在调用这些路由,但是需要提供静态文件。根据{{3}},可以使用serve
完成此操作。这是用于生产吗?然后,nginx是否应该在此之前?
我想知道,因为这样的路线是:
浏览器请求-> Nginx到Vue前端-> Vue前端-> Nginx到 后端
这是合适的方法还是我误会了?
答案 0 :(得分:2)
nginx应该在Express前面吗?
是的,这是一个很好的主意。
您必须为Vue和Express使用不同的URL集,因此Nginx在查看请求URL时将能够理解该怎么做:将Vue文件或代理提供给Express。 Nginx提供了多种方法来分类传入的请求:通过不同的主机名,路径,两者的组合等。
例如,为您的所有Express路由添加路径前缀/api/
。然后像这样配置nginx:
这不是生产就绪的配置,我只是在提示您应该在nginx文档中寻找什么
server {
listen 80;
server_name mydomainname.com;
location /api {
proxy_pass http://localhost:8000; # port that Express serves,
# better change to UNIX domain socket
}
location / {
root /vue_root/dist;
}
}