在AWS EC2上部署烧瓶应用程序
#aws #python #flask #nginx

在这篇博客文章中,我们将介绍在AWS EC2实例上部署烧瓶应用程序的过程。我们将介绍从设置环境到配置NGINX作为反向代理的每个步骤。通过遵循以下步骤,您将能够成功部署烧瓶应用程序并使外界可以访问。

步骤1:更新系统

确保我们的系统具有最新的软件包信息,请运行以下命令:

sudo apt-get update

此命令更新升级和新安装的软件包列表。

步骤2:安装Python虚拟环境

要为我们的项目创建一个孤立的Python环境,我们需要安装Python3-VENV软件包。执行以下命令:

sudo apt-get install python3-venv

python虚拟环境使我们能够管理依赖关系并将项目的环境与系统安装隔离。

步骤3:克隆或创建项目目录

您在这里有两个选择。使用git clone命令从github克隆一个现有项目,或使用mkdir命令创建一个新的项目目录,然后使用所需的项目名称。

步骤4:导航到项目目录

使用CD命令将当前的工作目录更改为项目目录:

cd project_name
步骤5:创建虚拟环境

现在,让我们为我们的项目创建一个虚拟环境。执行以下命令:

python3 -m venv venv

此命令在项目目录中创建一个名为“ VENV”的虚拟环境。

步骤6:激活虚拟环境

要激活虚拟环境,请运行以下命令:

. venv/bin/activate

激活后,您的命令提示符将反映虚拟环境的名称。

步骤7:安装烧瓶和依赖项

接下来,我们需要安装烧瓶和任何其他项目依赖性。使用以下任何一个命令:

pip install -r requirements.txt


pip install Flask

如果您有一个要求,则使用第一个命令。txt文件列出了所有依赖项。第二个命令直接安装烧瓶。

步骤8:运行烧瓶应用程序

要确保一切正常工作,请使用以下命令运行烧瓶应用程序:

python app.py

此命令启动烧瓶开发服务器,允许您在本地测试您的应用程序。

步骤9:安装枪支

Gunicorn是一款可生产的Web服务器,用于运行烧瓶应用程序。使用以下命令安装它:

pip install gunicorn
步骤10:运行枪支

要使用Gunicorn运行烧瓶应用程序,请执行以下命令:

gunicorn -b 0.0.0.0:8000 app:app

此命令启动枪支,将其绑定到端口8000上的所有可用网络接口。

步骤11:创建一个SystemD服务文件

要运行烧瓶应用程序作为服务,请使用以下命令创建SystemD服务文件:

sudo nano /etc/systemd/system/project_name.service
步骤12:将代码添加到服务文件

在服务文件中,添加以下代码:

[Unit]
Description=Gunicorn instance for a simple app
After=network.target

[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/project_name
ExecStart=/home/ubuntu/project_name/venv/bin/gunicorn -b localhost:8000 app:app
Restart=always

[Install]
WantedBy=multi-user.target

此代码指定服务描述,用户,组,工作目录和gunicorn命令启动烧瓶应用程序。

步骤13:重新加载Systemd守护程序

创建服务文件后,重新加载Systemd守护程序以使其意识到新服务:

sudo systemctl daemon-reload
步骤14:开始服务

要启动烧瓶应用程序服务,请运行以下命令:

sudo systemctl start project_name
步骤15:在系统启动上启用服务

要确保在系统启动时自动启动烧瓶应用程序服务,请执行以下命令:

sudo systemctl enable project_name
步骤16:测试应用程序

要验证烧瓶应用程序是否正确运行,请使用curl命令将请求发送到本地服务器:

curl localhost:8000

如果一切都正确设置了,则应从烧瓶应用程序中看到响应。

步骤17:安装nginx

要设置nginx作为反向代理,请使用以下命令安装它:

sudo apt-get install nginx
步骤18:启动nginx

要启动nginx服务,请运行以下命令:

sudo systemctl start nginx
步骤19:在系统启动上启用nginx

要确保Nginx在系统启动时自动启动,请执行以下命令:

sudo systemctl enable nginx
步骤20:配置nginx

使用纳米编辑器打开Nginx配置文件:

sudo nano /etc/nginx/sites-available/default
步骤21:上游和代理通行证

在文件顶部添加以下代码,下面是默认注释:

upstream flaskhelloworld {
    server 127.0.0.1:8000;
}
步骤22:配置代理通行证

在位置 /块中,添加以下代码:

location / {
    proxy_pass http://project_name;
}

此代码设置了反向代理,以将请求转发到在端口8000上运行的Gun​​icorn服务器。

步骤23:重新启动nginx

应用NGINX配置更改,重新启动NGINX服务:

sudo systemctl restart nginx

恭喜!您已使用Gunicorn和Nginx在AWS EC2实例上成功部署了烧瓶应用程序,作为反向代理。现在,您的烧瓶应用程序可以通过NGINX服务器访问,为您的应用程序提供了可靠且可扩展的设置。