如何在生产环境中运行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服务器,您可以使用Location
和ReverseProxy
来公开您的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指向它。