65.9K
CodeProject 正在变化。 阅读更多。
Home

在 EC2 Amazon Linux 实例上部署 ASP.NET Core 应用程序

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.93/5 (6投票s)

2016 年 12 月 30 日

CPOL

3分钟阅读

viewsIcon

40335

逐步指导在 Amazon Linux 实例上部署 ASP .NET Core Web 应用程序

引言

ASP.NET Core 是一个用于开发 Web 应用程序和移动后端应用程序的开源和跨平台框架。由于 ASP.NET Core 是一个跨平台框架,因此它提供了在 Windows、Linux 和 Mac 上开发和运行应用程序的灵活性。

有多种方法可以在 AWS EC2 Linux 实例上部署应用程序。我将在其他时间发布关于 AWS 代码管道的文章,该管道可用于自动化部署过程并在 EC2 实例上安装应用程序。现在,我们将重点关注在 Amazon Linux 实例上部署 ASP.NET Core Web 应用程序。

步骤 1 - 构建 ASP.NET Core 应用程序

从头开始开发您自己的 ASP .NET Core 应用程序。或者,您也可以使用 GitHub 上的示例应用程序进行此演示。

步骤 2 - 使用 Amazon Linux AMI 预置 EC2 实例

使用 Amazon Linux AMI 预置 t2.micro 实例,因为它有资格免费使用 12 个月。

  • 登录 AWS 控制台并启动 Amazon Linux EC 2 实例

  • 按照启动实例向导中的步骤操作,并配置入站规则以允许 HTTP 和 SSH 协议。确保在部署实时生产应用程序时,锁定 SSH 协议上的安全性,只允许从所需来源访问。将来源保留为 0.0.0.0/0 允许所有人访问。

 

  • 创建并下载新的密钥对。如果您已经创建了密钥对,请确保您可以访问 .pem 文件。您将在以下步骤中使用 .pem 文件来生成 ppk 文件并登录到 EC2 实例。
  • 启动 EC2 实例并记下 EC2 仪表板上显示的公共 IP 地址。您将需要公共 IP 地址才能通过 SSH 访问 EC2 实例。

步骤 3 - 配置 PuTTY 以从 Windows SSH 访问 Linux EC2 实例

  • 从 putty 下载页面下载 Putty 和 PuttyKeyGen,并配置 PuTTY。
  • 加载下载的 pem 文件,然后单击“保存私钥”以生成没有密码短语的私钥 (.ppk) 文件。

  • 在 PuTTY 配置中指定生成的 ppk 文件路径进行身份验证。

  • 指定用户名和公共 IP 地址以 SSH 访问 EC2 实例。 用户名将为 ec2-user@<公共 IP 地址>。

步骤 4 - 在 Linux EC2 实例上安装 Git、Apache 和 .NET Core

  • 使用 sudo su 命令提升安装权限

  • 运行以下命令安装 Appache 和 Git
    yum install httpd
    
    yum install git
  • 按顺序在终端上执行以下命令以下载并安装 .NET Core
    sudo yum install libunwind libicu
    curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=835019
    sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
    sudo ln -s /opt/dotnet/dotnet /usr/local/bin
    

    请参阅 https://www.microsoft.com/net/core#linuxcentos 上描述的在 CentOS 7.1 上安装 .NET Core 的步骤,这些步骤也适用于 Amazon Linux 实例。

  • 退出 sudo 模式并运行 dotnet 命令以验证安装

步骤 5 - 配置反向代理,以便所有传入请求都传递给 kestrel 服务器

  • 提升权限以编辑 httpd.conf 文件并进行以下更改
    <VirtualHost *:80>
        ProxyPass / https://127.0.0.1:5000/
        ProxyPassReverse / https://127.0.0.1:5000/
    </VirtualHost>
  • 重新启动 httpd 服务
    sudo service httpd restart

    有关为什么我们需要反向代理的更多信息,请参阅 https://docs.microsoft.com/en-us/aspnet/core/publishing/linuxproduction

步骤 6 - 在 Linux EC2 实例上编译和启动 .NET Core 应用程序

执行以下命令以编译和启动应用程序

dotnet restore

dotnet run

通过 EC2 仪表板上显示的公共 DNS 名称浏览已部署的应用程序。示例应用程序显示在 EC2 实例上设置的操作系统、框架和环境变量。

参考文献

© . All rights reserved.