在Linux上的AWS Elastic Beanstalk中部署多个ASP.NET核心应用程序(使用Kestrel服务器)

在Linux上的AWS Elastic Beanstalk中部署多个ASP.NET核心应用程序(使用Kestrel服务器),linux,amazon-web-services,asp.net-core,amazon-elastic-beanstalk,kestrel,Linux,Amazon Web Services,Asp.net Core,Amazon Elastic Beanstalk,Kestrel,我在Visual Studio解决方案中有两个ASP.NET核心应用程序(API和UI),希望在Linux上部署到单个AWS Elastic Beanstalk并使用Kestrel服务器(单个URL和不同端口)。如何实现这一点?AWS Elastic Beanstalk支持在Linux上的.NET Core中运行多个应用程序。Elastic Beanstalk的.NET Core on Linux文档包含一个有用的部分,其中包括一个示例zip文件,其中包含两个将一起部署在一个Elastic Be

我在Visual Studio解决方案中有两个ASP.NET核心应用程序(API和UI),希望在Linux上部署到单个AWS Elastic Beanstalk并使用Kestrel服务器(单个URL和不同端口)。如何实现这一点?

AWS Elastic Beanstalk支持在Linux上的.NET Core中运行多个应用程序。Elastic Beanstalk的.NET Core on Linux文档包含一个有用的部分,其中包括一个示例zip文件,其中包含两个将一起部署在一个Elastic Beanstalk实例上的应用程序:

您可以将
dotnetcorelinuxmultipleapps.zip
文件直接部署到ElasticBeanstalk以查看其运行。有关如何将zip文件部署到Elastic Beanstalk的明确说明,请参阅指南。在您的例子中,您需要上传示例
dotnetcorelinuxmultipleapps.zip,而不是教程中引用的单个app-zip

每个部署的应用程序将在每个应用程序的
launchSettings.json
文件中定义的本地端口上的Elastic Beanstalk应用程序服务器实例上运行。请注意,此文件在
dotnet core linux multiple apps.zip存档中包含的两个示例应用中都不可见,因为这些应用在包含在zip文件中之前已使用
dotnet publish
命令编译

告诉Elastic Beanstalk映射到每个运行应用程序本地端口的路径的相关配置位于
平台/nginx/conf.d/elasticbeanstalk/01_custom.conf
文件中,该文件位于
dotnet core linux multiple apps.zip
中。有关此文件所包含内容的更多信息,请参阅Linux上的.NET内核。请注意,默认情况下,Elastic Beanstalk会将
/
映射到端口
5000
,因此您只需为其他应用指定其他反向代理映射,假设您的一个应用配置为在默认端口
5000
上运行

总而言之:

  • 通过查看每个应用的
    launchSettings.json
    文件,确保您知道每个应用将在哪个本地端口上运行

  • 构建每个.NET核心应用程序,并将它们放在一个文件夹中,通过压缩该文件夹创建要部署到Elastic Beanstalk的工件。为了便于讨论,我们将此文件夹称为
    build

  • build
    文件夹(示例名称,见上文)中,创建一个
    platform/nginx/conf.d/elasticbeanstalk/01_custom.conf
    文件,该文件描述如何将每个应用程序的端口映射到所需路径

  • 压缩你的“构建”文件夹。有关此步骤的帮助,请参阅

  • 将源包部署到Elastic Beanstalk。有关此步骤的帮助,请参阅文档


  • AWS Elastic Beanstalk支持在Linux上的.NET内核中运行多个应用程序。Elastic Beanstalk的.NET Core on Linux文档包含一个有用的部分,其中包括一个示例zip文件,其中包含两个将一起部署在一个Elastic Beanstalk实例上的应用程序:

    您可以将
    dotnetcorelinuxmultipleapps.zip
    文件直接部署到ElasticBeanstalk以查看其运行。有关如何将zip文件部署到Elastic Beanstalk的明确说明,请参阅指南。在您的例子中,您需要上传示例
    dotnetcorelinuxmultipleapps.zip,而不是教程中引用的单个app-zip

    每个部署的应用程序将在每个应用程序的
    launchSettings.json
    文件中定义的本地端口上的Elastic Beanstalk应用程序服务器实例上运行。请注意,此文件在
    dotnet core linux multiple apps.zip存档中包含的两个示例应用中都不可见,因为这些应用在包含在zip文件中之前已使用
    dotnet publish
    命令编译

    告诉Elastic Beanstalk映射到每个运行应用程序本地端口的路径的相关配置位于
    平台/nginx/conf.d/elasticbeanstalk/01_custom.conf
    文件中,该文件位于
    dotnet core linux multiple apps.zip
    中。有关此文件所包含内容的更多信息,请参阅Linux上的.NET内核。请注意,默认情况下,Elastic Beanstalk会将
    /
    映射到端口
    5000
    ,因此您只需为其他应用指定其他反向代理映射,假设您的一个应用配置为在默认端口
    5000
    上运行

    总而言之:

  • 通过查看每个应用的
    launchSettings.json
    文件,确保您知道每个应用将在哪个本地端口上运行

  • 构建每个.NET核心应用程序,并将它们放在一个文件夹中,通过压缩该文件夹创建要部署到Elastic Beanstalk的工件。为了便于讨论,我们将此文件夹称为
    build

  • build
    文件夹(示例名称,见上文)中,创建一个
    platform/nginx/conf.d/elasticbeanstalk/01_custom.conf
    文件,该文件描述如何将每个应用程序的端口映射到所需路径

  • 压缩你的“构建”文件夹。有关此步骤的帮助,请参阅

  • 将源包部署到Elastic Beanstalk。有关此步骤的帮助,请参阅文档


  • 您是否可以执行单个弹性Beanstalk部署,将应用程序放在不同的URL路径而不是不同的端口上?查找一个URL并使用不同的端口。谢谢。是的,单弹性Beanstalk部署可以将两个应用程序放在不同的URL路径上,而不是放在不同的端口上。请告知。您好,Arkaya您是否可以执行单个弹性Beanstalk部署,将您的应用程序放在不同的URL路径上,而不是放在不同的端口上?查找一个URL并使用不同的端口。谢谢。是的,单个弹性Beanstalk部署将两个应用程序放在不同的URL路径上