我有一个使用Angular 4和Node.js的应用程序,我使用angular-cli和nodemon在开发模式下运行。
显然Angular运行:4200和Node.js运行于:3000,我做了proxy.config.json
将/api
请求重定向到: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上运行此应用程序的最佳方法是什么?
答案 0 :(得分:2)
使用Apache服务器,您可以使用Location
和ReverseProxy
公开Node.js API:
/etc/apache2/site-availables/your-project.conf(在<VirtualHost:.80>
块上,例如DocumentRoot
之后):
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应用程序保存在后台: How To Set Up a Node.js Application for Production on Ubuntu 16.04
对于Angular项目,只需为生产环境构建它:ng build --prod (--aot)
在服务器上传输生成的文件,并将VirtualHost指向它。