我正在尝试使用 Elastic Beanstalk 和 Amazon Linux 2。我注意到的一件事是 WSGI 路径似乎有点不同。
对于 Django 应用程序,我通常会设置<<app_name>>.wsgi.py
相反,定义它的新方法是使用这样的命名空间。但是,这似乎不适用于仅从eb config
购买.ebextensions
<<app_name>>.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 参数的导出函数(或类)的名称。
这就是为什么你必须使用上面的语法。
有几种方法可以为您的项目指定 WSGI 路径。您可以通过 AWS gui 执行此操作,但我的建议是将 Procfile 添加到您的项目中。我的 Procfile 看起来像这样:
web: gunicorn --bind :8000 --workers 3 --threads 2 <<my_app>>.wsgi:application