如何在生产环境中运行Node.js + Angular 4项目

我有一个使用Angular 4和Node.js的应用程序,我使用angular-cli和nodemon在开发模式下运行。

显然,Angular运行于:4200,Node.js运行于:3000,我做了一个proxy.config.json来将/api请求redirect到:3000,如下所示:

 { "/api/*":{ "target":"http://localhost:3000", "secure":false, "logLevel":"debug" } } 

我使用我在package.json定义的两个脚本运行项目:

 "server": "nodemon server/server.js --watch server", "dev": "ng serve --proxy-config proxy.config.json" 

现在我想要通过生产模式并在VPS上部署我的应用程序。 在VPS上运行此应用程序的最佳方式是什么?

1. Node.js部署

使用Apache服务器,您可以使用LocationReverseProxy来公开您的Node.js API:

/etc/apache2/site-availables/your-project.conf(在DocumentRoot之后的<VirtualHost:.80>块中):

  ProxyRequests Off ProxyPreserveHost On ProxyVia Full <Proxy *> Require all granted </Proxy> <Location /api> ProxyPass http://127.0.0.1:3000 ProxyPassReverse http://1127.0.0.1:3000 </Location> 

然后你可以使用pm2来保持你的Node.js应用程序在后台: 如何在Ubuntu 16.04上设置一个Node.js应用程序来生产

2.angular度部署

对于Angular项目,只需构build一个生产环境: ng build --prod (--aot)

将生成的文件传输到您的服务器上,并将VirtualHost指向它。