WSGI 路径不适用于 Amazon Linux 2
WSGI path doen't work with Amazon Linux 2
我正在尝试使用 Elastic Beanstalk 和 Amazon Linux 2. 我注意到的一件事是 WSGI 路径似乎有点不同。
对于 Django 应用程序,我通常会设置 <<app_name>>.wsgi.py
相反,定义它的新方法是使用这样的命名空间。但是,这似乎不适用于 eb config
仅从 .ebextensions
购买
<<app_name>>.wsgi:application
我觉得,我在这里做错了什么或者没有理解这个命名空间的概念?
为什么我突然要添加命名空间?
因为其他人可能 运行 进入这个问题。
这是我的问题的解决方法:
Amazon Linux 2 使用 Gunicorn 作为默认网络服务器。 Gunicorn 在指定 WSGI 配置的路径时需要特定的语法。此语法不仅包括文件路径,还包括接受 WSGI 参数的导出函数的名称(或 class)。
这就是您必须使用上述语法的原因。
有几种方法可以为您的项目指定 WSGI 路径。您可以通过 AWS gui 执行此操作,但我的建议是将 Procfile 添加到您的项目中。
我的 Procfile 如下所示:
web: gunicorn --bind :8000 --workers 3 --threads 2 <<my_app>>.wsgi:application
我正在尝试使用 Elastic Beanstalk 和 Amazon Linux 2. 我注意到的一件事是 WSGI 路径似乎有点不同。
对于 Django 应用程序,我通常会设置 <<app_name>>.wsgi.py
相反,定义它的新方法是使用这样的命名空间。但是,这似乎不适用于 eb config
仅从 .ebextensions
<<app_name>>.wsgi:application
我觉得,我在这里做错了什么或者没有理解这个命名空间的概念? 为什么我突然要添加命名空间?
因为其他人可能 运行 进入这个问题。
这是我的问题的解决方法:
Amazon Linux 2 使用 Gunicorn 作为默认网络服务器。 Gunicorn 在指定 WSGI 配置的路径时需要特定的语法。此语法不仅包括文件路径,还包括接受 WSGI 参数的导出函数的名称(或 class)。
这就是您必须使用上述语法的原因。
有几种方法可以为您的项目指定 WSGI 路径。您可以通过 AWS gui 执行此操作,但我的建议是将 Procfile 添加到您的项目中。 我的 Procfile 如下所示:
web: gunicorn --bind :8000 --workers 3 --threads 2 <<my_app>>.wsgi:application