为Vue应用程序前端和node.js后端配置Nginx

时间:2018-12-10 00:05:01

标签: node.js nginx vue.js

我几个月来一直在寻找这个答案,但从未解决过。我使用nginx作为我的Web服务器,并使用node.js作为我的后端api和vue作为使用webpack的主要前端网页。我希望能够通过转到http://ip进入我的Vue页面,然后通过转到http://ip/api来访问api服务。我没有设置域名,所以我使用IP地址作为网址。

到目前为止,我已经构建了Vue应用程序,并且位于/ var / www / html / Web / dist文件夹中,并且如果您转到http://ip网址也可以使用,但是我无法访问我的node.js API 。我的node.js服务器在本地主机端口3000上运行。我的nginx配置看起来像这样:

server {
        listen 80;

        root /var/www/html/Web/dist;
}

server {

listen 80;

  location /api/ {

        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;

  }

}

1 个答案:

答案 0 :(得分:0)

您正在复制服务器配置。只需设置一个服务器属性即可:

server {
  listen 80;    
  root /var/www/html/Web/dist;
  location /api/ {    
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;

  }
}

这意味着:

  • 侦听端口80上所有IP的所有请求
  • 评估从根/var/www/html/Web/dist;开始的相对路径
  • 如果网址中有匹配的'/ api /',请将其传递给localhost:3000

现在应该可以正常工作了