我有两个ASP.NET Core应用程序(API和UI)在Visual Studio解决方案中,想要部署到单个AWS Elastic Beanstalk上的Linux,并使用Kestrel服务器(单个URL和不同端口)。我该如何实现这一目标?
dotnet-core-linux-multiple-apps.zip
文件部署到Elastic Beanstalk中以查看其运行情况。有关如何将zip文件部署到Elastic Beanstalk的明确说明,请参见教程-.NET Core on Linux指南。在您的情况下,您需要上传示例dotnet-core-linux-multiple-apps.zip
,而不是教程所引用的单个应用程序zip。launchSettings.json
文件中。请注意,在dotnet-core-linux-multiple-apps.zip
存档文件中包含的示例应用程序中,此文件不可见,因为这些应用程序在包含在zip文件之前已经使用dotnet publish
命令编译过了。platform/nginx/conf.d/elasticbeanstalk/01_custom.conf
文件中,该文件位于dotnet-core-linux-multiple-apps.zip
中。有关此文件包含的内容的更多信息,请参阅.NET Core on Linux 代理服务器配置文档。请注意,默认情况下,Elastic Beanstalk将/
映射到端口5000
,因此您只需要为其他应用程序指定附加的反向代理映射,假设其中一个应用程序配置为在默认端口5000
上运行。通过查看每个应用程序的launchSettings.json
文件,确保您知道每个应用程序将在哪个本地端口上运行。
构建您的每个.NET Core应用程序,并将它们放在一个文件夹中,您将对其进行压缩以创建部署到Elastic Beanstalk的工件。为了论证,让我们称这个文件夹为build
。
在您的build
文件夹(示例名称,请参见上文)中创建一个platform/nginx/conf.d/elasticbeanstalk/01_custom.conf
文件,其中描述如何将每个应用程序的端口映射到所需的路径。
压缩您的“build”文件夹。有关此步骤的帮助,请参阅配置应用程序源束文档
将您的源束部署到Elastic Beanstalk。有关此步骤的帮助,请参阅管理应用程序版本文档。