Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在AWS中运行Angular 7服务器端渲染(SSR)通用内置_Angular_Amazon Web Services_Angular7_Angular Universal_Server Side Rendering - Fatal编程技术网

如何在AWS中运行Angular 7服务器端渲染(SSR)通用内置

如何在AWS中运行Angular 7服务器端渲染(SSR)通用内置,angular,amazon-web-services,angular7,angular-universal,server-side-rendering,Angular,Amazon Web Services,Angular7,Angular Universal,Server Side Rendering,这个问题已经问过了,但没有解决我的问题 我正在尝试使用服务器端渲染运行我的Angular-7产品以下步骤: 我使用这个cmdng add@nguniversal/express引擎--clientProject创建了一个构建 并使用以下命令启动我的通用应用程序:cmdnpm run build:ssr&&npm run service:ssr 此步骤完成后,将创建以下文件夹和文件: AWS中的下一步: 将dist移到服务器上 安装PM2 npm安装pm2-g pm2启动dist/server.

这个问题已经问过了,但没有解决我的问题

我正在尝试使用
服务器端渲染运行我的
Angular-7
产品
以下步骤:

  • 我使用这个cmd
    ng add@nguniversal/express引擎--clientProject创建了一个构建
  • 并使用以下命令启动我的通用应用程序:cmd
    npm run build:ssr&&npm run service:ssr
  • 此步骤完成后,将创建以下文件夹和文件:

    AWS中的下一步:

  • 将dist移到服务器上
  • 安装PM2
  • npm安装pm2-g
  • pm2启动dist/server.js
  • 使用自定义TCP创建入站安全组
  • 在我尝试访问我的项目url后,它显示如下


    我不知道如何解决这个问题。提前感谢。

    这里的问题是,作为Web服务器的apache/nginx默认在端口80上呈现输出,而不是在angular服务器上呈现输出。 但是,Angular express服务器没有在端口80上运行(浏览器希望如此),因此,您必须将其实际运行的端口转发到端口80(默认http端口)。 以下是一些更详细的信息:

    Nginx:

    如果您想在AWS上托管您的节点应用程序(Angular ssr),我个人建议使用elasticbeanstalk节点bean。默认情况下,这将为您处理所有这些问题,您只需“压缩”已获得的文件夹并将其上载即可。 其他一切(包括pm2)都将由该公司处理

    Apache作为代理: 如果要使用apache作为代理,必须为域创建virtualhost并添加以下代码:

    <VirtualHost node.example.com:80>   
        ServerName node.example.com  
         ProxyPass / http://localhost:8000/ connectiontimeout=5 timeout=30  # optional timeout settings  
    </VirtualHost>
    
    
    ServerName node.example.com
    ProxyPass/http://localhost:8000/ connectiontimeout=5超时=30#可选超时设置
    
    这里的问题是,作为Web服务器的apache/nginx默认在端口80上呈现输出,而不是在angular服务器上呈现输出。 但是,Angular express服务器没有在端口80上运行(浏览器希望如此),因此,您必须将其实际运行的端口转发到端口80(默认http端口)。 以下是一些更详细的信息:

    Nginx:

    如果您想在AWS上托管您的节点应用程序(Angular ssr),我个人建议使用elasticbeanstalk节点bean。默认情况下,这将为您处理所有这些问题,您只需“压缩”已获得的文件夹并将其上载即可。 其他一切(包括pm2)都将由该公司处理

    Apache作为代理: 如果要使用apache作为代理,必须为域创建virtualhost并添加以下代码:

    <VirtualHost node.example.com:80>   
        ServerName node.example.com  
         ProxyPass / http://localhost:8000/ connectiontimeout=5 timeout=30  # optional timeout settings  
    </VirtualHost>
    
    
    ServerName node.example.com
    ProxyPass/http://localhost:8000/ connectiontimeout=5超时=30#可选超时设置
    
    谢谢你的建议,但我已经在apache服务器上运行了另一个网站,目前我需要检查同一服务器上的另一个项目。这意味着我加载了另一个项目URL,如“dev.myproject.com”,它可以正常工作,但我需要重新加载子文件夹,它将在浏览器中显示文件列表@Simoneritsch,但您需要使用端口代理版本才能使其正常工作。我更新了apache代理解决方案的答案我尝试更改我的域
    ServerName dev.choosecubby.com ProxyPass/https://dev.choosecubby.com:9000/ connectiontimeout=5 timeout=30#可选超时设置
    它显示httpd.service的
    作业失败,因为控制进程失败已退出,错误代码为。有关详细信息,请参阅“systemctl status httpd.service”和“journalctl-xe”。
    当我重新启动apacheso时,
    systemctl status httpd.service
    返回什么?试着在你的服务器上运行它,以了解它失败的更多细节。“ProxyPass”也必须是,因为您想将服务器内部端口8000代理到80。谢谢您的建议,但我已经在apache服务器上运行了另一个网站,目前我需要检查同一服务器上的另一个项目。这意味着我加载了另一个项目URL,如“dev.myproject.com”“它可以正常工作,但我需要重新加载子文件夹。它将在浏览器中显示文件列表@Simoneritsch,但您需要使用端口代理版本才能使其正常工作。我更新了apache代理解决方案的答案我尝试更改我的域
    ServerName dev.choosecubby.com ProxyPass/https://dev.choosecubby.com:9000/ connectiontimeout=5 timeout=30#可选超时设置
    它显示httpd.service的
    作业失败,因为控制进程失败已退出,错误代码为。有关详细信息,请参阅“systemctl status httpd.service”和“journalctl-xe”。
    当我重新启动apacheso时,
    systemctl status httpd.service
    返回什么?试着在你的服务器上运行它,以了解它失败的更多细节。此外,“ProxyPass”必须是,因为您要将服务器内部端口8000代理到80。