在这篇博客文章中,我们将介绍在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上运行的Gunicorn服务器。
步骤23:重新启动nginx
应用NGINX配置更改,重新启动NGINX服务:
sudo systemctl restart nginx
恭喜!您已使用Gunicorn和Nginx在AWS EC2实例上成功部署了烧瓶应用程序,作为反向代理。现在,您的烧瓶应用程序可以通过NGINX服务器访问,为您的应用程序提供了可靠且可扩展的设置。