Ubuntu 16.04 LTS中的Angular 7服务器端渲染部署

时间:2018-12-16 21:46:58

标签: angular angular7

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

它在本地计算机上正常运行没问题,并且dist文件夹包括服务器和浏览器文件夹以及server.js

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

我进行了大量搜索,并使用pm2方法运行了该过程,但是我没有找到如何访问网站的方法。

2 个答案:

答案 0 :(得分:0)

首先,您必须将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服务器后,应该可以通过调用服务器的IP或主机名从外部访问Angular应用程序。


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

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

答案 1 :(得分:0)

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