【问题标题】:Angular 7 server side rendering deployment in ubuntu 16.04 LTSUbuntu 16.04 LTS 中的 Angular 7 服务器端渲染部署
【发布时间】:2019-03-15 00:38:46
【问题描述】:

我使用通用工具创建了带有服务器端渲染的 Angular 7 项目。

它在本地机器上工作正常没问题,dist文件夹包括服务器和浏览器文件夹和server.js

问题是如何在使用 apache 的 ubuntu 服务器中使用它,并且应用程序将位于子文件夹中,如果我关闭终端,我如何保持应用程序运行?

我搜索了很多并使用 pm2 方法运行进程,但我没有找到如何访问站点。

【问题讨论】:

    标签: angular angular7


    【解决方案1】:

    问题是我在更改端口并通过防火墙打开新端口时使用的是 apache 端口工作正常。

    【讨论】:

      【解决方案2】:

      首先,您必须将 Web 服务器配置为反向代理以指向节点服务器。

      对于 Nginx,配置可能如下所示:

      location / { 
          proxy_pass http://localhost:8080;
          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;
      }
      

      确保您为proxy_pass 设置的端口与您的节点服务器文件中定义的端口相同。

      接下来,您应该将 dist 目录复制到您的 Web 服务器。然后您可以使用 pm2 在后台启动节点服务器,正如您已经正确提到的:

      npm install pm2 -g
      pm2 start /var/www/html/server.js // this is the entry point of your universal server
      

      这将启动节点服务器。您可以通过运行curl localhost:8080 检查 Node 是否正确响应。如果这会返回您的应用程序的源代码,那么您就可以开始了。

      最后,在您重新启动 Web 服务器后,您的 Angular 应用程序应该可以通过调用您的服务器 IP 或主机名从外部访问。


      编辑 - 要在您的 apache 服务器上完全启用代理,请运行以下命令:

      sudo a2enmod proxy
      sudo a2enmod proxy_http
      sudo a2enmod proxy_balancer
      sudo a2enmod lbmethod_byrequests
      

      【讨论】:

      • apache 呢?
      • 我打开了端口,但端口打开了默认的 apache 页面而不是定义的文件夹这是主机文件如何将端口指向 Angular 应用程序?
      • @Roufail 您是否在您的 apache 服务器上启用了代理模块?如果不检查我的编辑。如果您可以调整您的问题并添加您的虚拟主机的配置,这将是有帮助的,所以我们可能会检查它们。
      • 我很抱歉延迟问题是我在更改它并通过防火墙打开新端口时使用的是 apache 端口工作正常。
      猜你喜欢
      • 2019-09-07
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2017-06-26
      • 2018-03-21
      • 1970-01-01
      • 2018-12-13
      • 1970-01-01
      相关资源
      最近更新 更多