用于单独的Vue前端和Express后端的NGINX设置

时间:2018-10-06 14:39:22

标签: node.js express nginx vue.js

我想知道在与快速后端分开部署vue前端时正确的nginx设置-不是在服务器或域方面,而是在服务方式方面。

在开发过程中,我在vue目录中使用npm serve,并通过npm run build生成生产版本。应该为生成的dist文件夹提供服务,我的问题是,当后端在同一服务器上时,如何完成此操作。

对于后端来说,表达是公开路线。 nginx是否应该在Express前面? Vue前端正在调用这些路由,但是需要提供静态文件。根据{{​​3}},可以使用serve完成此操作。这是用于生产吗?然后,nginx是否应该在此之前?

我想知道,因为这样的路线是:

  

浏览器请求-> Nginx到Vue前端-> Vue前端-> Nginx到   后端

这是合适的方法还是我误会了?

1 个答案:

答案 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;
  }
}