AWS Elastic Beanstalk - python 的 nginx 配置(AL2 上的 3.7)flask 应用程序
Posted
技术标签:
【中文标题】AWS Elastic Beanstalk - python 的 nginx 配置(AL2 上的 3.7)flask 应用程序【英文标题】:AWS Elastic Beanstalk - nginx configuration for python (3.7 on AL2) flask app 【发布时间】:2022-01-06 23:16:07 【问题描述】:我正在尝试使用 nginx 服务器在弹性 beanstalk 上运行一个简单的烧瓶 (python) 应用程序。
python 应用程序似乎可以在我的 .ebextensions application.config 中使用以下配置启动:
option_settings:
"aws:elasticbeanstalk:container:python":
WSGIPath: application:application
gunicorn 似乎可以将自己绑定到应用程序 - 请参阅:
Nov 30 07:40:00 ip-172-31-19-88 web: [2021-11-30 07:40:00 +0000] [32041] [INFO] Starting gunicorn 20.1.0
Nov 30 07:40:00 ip-172-31-19-88 web: [2021-11-30 07:40:00 +0000] [32041] [INFO] Listening at: http://127.0.0.1:8000 (32041)
Nov 30 07:40:00 ip-172-31-19-88 web: [2021-11-30 07:40:00 +0000] [32041] [INFO] Using worker: gthread
Nov 30 07:40:00 ip-172-31-19-88 web: [2021-11-30 07:40:00 +0000] [32098] [INFO] Booting worker with pid: 32098
当我访问网址时,浏览器会挂起很长时间(几分钟),最终超时并显示“响应时间太长”。
我认为这与 NGINX 配置未正确代理请求有关 - 所以我尝试将以下内容添加到 .ebextensions/nginx/conf.d/myconf.conf
server
location /
proxy_pass http://127.0.0.1:8000;
proxy_http_version 1.1;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
但这似乎没有任何作用。
关于问题可能是什么的任何想法?我不确定它的 NGINX,但它似乎确实在发生问题的那一层......网络服务器似乎不知道如何处理我的网络请求。
感谢您的帮助。
【问题讨论】:
【参考方案1】:.ebextensions/nginx/conf.d/myconf.conf
是路径不正确。在 AL2 上,nginx should be customized 使用 .platform/nginx/conf.d/
或 .platform/nginx/nginx.conf
如果您要覆盖整个 nginx.conf。
【讨论】:
谢谢@Marcin。我将文件移动到 .platform/nginx/conf.d/myconf.conf 并重新部署,但问题没有改变。仍然需要很长时间,然后最终超时。 @JohnChristian 您的更改可能需要重写整个 nginx.conf。为此,您必须提供完整的.platform/nginx/nginx.conf
。
我很难相信为了让 hello world 烧瓶应用程序启动并运行,我需要提供整个配置?没有意义。在这种情况下,我不妨使用 EC2。
@JohnChristian 通常它开箱即用。我不知道你在用烧瓶应用程序做什么。您尚未提供有关您的设置的任何详细信息。你可以为此提出一个新问题。以上是关于AWS Elastic Beanstalk - python 的 nginx 配置(AL2 上的 3.7)flask 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何在 AWS Elastic Beanstalk 上配置我的 WSGI 应用程序的名称?
AWS Elastic Beanstalk Python (3.8) 平台:除了使用 `requirements.txt` 之外,为带有 `--no-deps` 标志的 Python 包运行额外的 p
Amazon Elastic BeanStalk 错误:无法创建 AWS Elastic Beanstalk 应用程序版本