【问题标题】:How to run a Node.js + Angular 4 project in production如何在生产环境中运行 Node.js + Angular 4 项目
【发布时间】:2017-11-07 09:06:49
【问题描述】:

我有一个使用 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 上运行此应用程序的最佳方式是什么?

【问题讨论】:

  • 在你的 vps 上安装 node 和 pm2。使用 pm2 将您的应用程序作为守护程序运行。使用 apache 或 ngix 将所有请求代理到您的应用程序正在运行的内部端口。

标签: node.js angular deployment


【解决方案1】:

1。 Node.js 部署

使用 Apache 服务器,您可以使用 LocationReverseProxy 公开您的 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

2。角度部署

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-22
    • 2018-08-21
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    相关资源
    最近更新 更多