Angular ubuntu 16.04 LTS 中的 7 个服务器端渲染部署
Angular 7 server side rendering deployment in ubuntu 16.04 LTS
我使用通用工具创建了 Angular 7 个服务器端渲染项目。
它在本地机器上工作正常没问题,dist 文件夹包括服务器和浏览器文件夹和 server.js
问题是如何在使用 apache 的 ubuntu 服务器中使用它,应用程序将位于子文件夹中,如果我关闭终端,如何保持应用程序 运行ing?
我搜索了很多并使用了 pm2 方法处理 运行 但我没有找到如何访问站点。
首先,您必须将 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 目录复制到您的网络服务器。然后你可以在后台使用 pm2 启动节点服务器,正如你已经正确提到的那样:
npm install pm2 -g
pm2 start /var/www/html/server.js // this is the entry point of your universal server
这将启动节点服务器。您可以通过 运行ning curl localhost:8080
检查 Node 是否正确响应。如果此 returns 是您应用程序的源代码,那么您就可以开始了。
最后,在您重新启动 Web 服务器后,您的 Angular 应用程序应该可以通过调用您的服务器 IP 或主机名从外部访问。
编辑 - 要在您的 Apache 服务器上完全启用代理,运行 以下命令:
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests
问题是当我更改端口并通过防火墙打开新端口时我正在使用 apache 端口。
我使用通用工具创建了 Angular 7 个服务器端渲染项目。
它在本地机器上工作正常没问题,dist 文件夹包括服务器和浏览器文件夹和 server.js
问题是如何在使用 apache 的 ubuntu 服务器中使用它,应用程序将位于子文件夹中,如果我关闭终端,如何保持应用程序 运行ing?
我搜索了很多并使用了 pm2 方法处理 运行 但我没有找到如何访问站点。
首先,您必须将 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 目录复制到您的网络服务器。然后你可以在后台使用 pm2 启动节点服务器,正如你已经正确提到的那样:
npm install pm2 -g
pm2 start /var/www/html/server.js // this is the entry point of your universal server
这将启动节点服务器。您可以通过 运行ning curl localhost:8080
检查 Node 是否正确响应。如果此 returns 是您应用程序的源代码,那么您就可以开始了。
最后,在您重新启动 Web 服务器后,您的 Angular 应用程序应该可以通过调用您的服务器 IP 或主机名从外部访问。
编辑 - 要在您的 Apache 服务器上完全启用代理,运行 以下命令:
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests
问题是当我更改端口并通过防火墙打开新端口时我正在使用 apache 端口。