这个问题已经问了,但不能解决我的问题。
我正在尝试使用Angular-7
来运行我的Server Side Rendering
产品,具体步骤如下:
ng add @nguniversal/express-engine --clientProject
npm run build:ssr && npm run serve:ssr
此步骤之后,它将创建以下文件夹和文件:
AWS中的下一步:
我不知道如何解决这个问题。预先感谢。
答案 0 :(得分:0)
这里的问题是,默认情况下,作为Web服务器的apache / nginx在端口80而不是在角度服务器上渲染输出。 但是,您的Angular Express服务器未在端口80上运行(浏览器期望),因此,您必须将其实际运行的端口转发到端口80(默认为http端口)。 这里有一些更多细节:
Nginx: https://eladnava.com/binding-nodejs-port-80-using-nginx/
如果您想在AWS上托管您的节点应用程序(Angular ssr是该应用程序),我个人建议使用elasticbeanstalk节点bean。默认情况下,这将为您处理所有这些,您只需“压缩”所拥有的文件夹并上传。 其他所有内容(包括pm2)将由该内容处理。
Apache作为代理: 如果要使用apache作为代理,则必须为您的域创建一个虚拟主机并添加以下代码:
<VirtualHost node.example.com:80>
ServerName node.example.com
ProxyPass / http://localhost:8000/ connectiontimeout=5 timeout=30 # optional timeout settings
</VirtualHost>