将flask应用程序部署到amazon-linux2ec2实例



我看过很多关于如何将Flask web应用程序部署到AWS的例子,但所有这些例子都是使用Ubuntu或EC2的Red hat实例。

有人能告诉我如何将flask应用程序部署到从Amazon Linux 2(免费层(实例化的EC2,并使用Python3 吗

更新

David Buck,谢谢你的链接,但我正在尝试将httpd与mod_wsgi一起使用;在经历了这么多谷歌搜索之后,我想出了以下步骤:

yum install python3-devel httpd-devel gcc
pip3 install mod_wsgi
mod_wsgi-express module-config >> /etc/httpd/conf/httpd.conf

但根据最后一个命令,我得到了mod_wsgi-express: command not found

一旦我通过了上述步骤,我就可以继续设置烧瓶应用

感谢

我遵循以下步骤,从amazon ec2实例(amazon Linux 2 AMI t2.micro(获得烧瓶应用程序

通过ssh登录到ec2实例,并运行以下命令:

01 sudo su
02 yum install python3-devel httpd-devel httpd gcc git
03 pip3 install mod_wsgi
04 mod_wsgi-express start-server

上面的命令不起作用,但它在重新启动实例后起作用

05 mod_wsgi-express module-config >> /etc/httpd/conf/httpd.conf

这又一次不起作用;不断出现拒绝权限的错误,即使我使用sudo运行时也是如此;所以我用管道连接到一个临时文件,并将该临时文件的内容复制到/etc/httpd/conf/httpd.conf

临时文件的内容应该像下面的

LoadModule wsgi_module "/usr/local/lib64/python3.7/site-packages/mod_wsgi/server/mod_wsgi-py37.cpython-37m-x86_64-linux-gnu.so"
WSGIPythonHome "/usr"

重新启动http服务并确保一切正常

06 systemctl restart httpd

现在用于设置烧瓶应用

07 pip3 install flask
08 car /var/www
09 git clone https://github.com/nshathish/flask-lab2.git
10 cd flask-lab2
11 nano flask-lab2.wsgi

在上述文件中输入以下内容

import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0, "/var/www/flask-lab2")
from app import app as application

12 sudo nano /etc/httpd/conf.d/flask-lab2.conf

现在将以下内容复制到上述文件中

<VirtualHost *:80>
ServerName flask-lab2.myserver.com
ServerAdmin root@nshathish.com1
WSGIScriptAlias / /var/www/flask-lab2/flask-lab2.wsgi
WSGIDaemonProcess flask-lab2
<Directory /var/www/flask-lab2>
WSGIProcessGroup flask-lab2
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
ErrorLog /var/log/httpd/error.log
LogLevel warn
CustomLog /var/log/httpd/access.log combined
</VirtualHost>

最终检查

13 curl http://localhost

如果你得到上面命令的Hello World,一切都很好

如果有人能解释我为什么不能运行第5步,那将非常有用;对上述步骤的任何改进都是非常受欢迎的

最新更新