【问题标题】:DisallowedHost at / Invalid HTTP_HOST header: Django & LambdaDisallowedHost at / Invalid HTTP_HOST 标头:Django 和 Lambda
【发布时间】:2020-05-07 00:24:05
【问题描述】:

我正在使用 zappa 将 django api 上传到 aws lambda 项目是使用 django3.0、postgreSQL 和 django rest 框架构建的。本地一切正常,但是当我将 api 部署到 AWS Lambda 时,出现以下错误:

invalid HTTP_HOST header: 'lpzyjitlr0.execute-api.us-east-1.amazonaws.com'. 
You may need to add 'lpzyjitlr0.execute-api.us-east-1.amazonaws.com' to ALLOWED_HOSTS.

我已经按照错误提示添加了 url,但是当我这样做时,我从 zappa 收到 504 错误。我今天整天都在梳理堆栈溢出,并在其他帖子中尝试了许多解决方案,但没有一个对我有用。我已将以下内容添加到允许的主机中,但仍然没有

ALLOWED_HOSTS = ['127.0.0.1', '*******.execute-api.us-east-1.amazonaws.com']

我不确定此时我做错了什么,但我真的很想启动并运行它。任何帮助将不胜感激。我的 github 上有完整的项目

https://github.com/coffeeincodeout/membership

你可以在这里查看日志

host found: [lpzyjitlr0.execute-api.us-east-1.amazonaws.com]
[1579569464923] [DEBUG] 2020-01-21T01:17:44.923Z 39c648fa-bd41-4c97-86de-428c90f48197 amazonaws found in host
[1579569464924] Invalid HTTP_HOST header: 'lpzyjitlr0.execute-api.us-east-1.amazonaws.com'. You may need to add 'lpzyjitlr0.execute-api.us-east-1.amazonaws.com' to ALLOWED_HOSTS.
[1579569464924] [ERROR] 2020-01-21T01:17:44.924Z 39c648fa-bd41-4c97-86de-428c90f48197 Invalid HTTP_HOST header: 'lpzyjitlr0.execute-api.us-east-1.amazonaws.com'. You may need to add 'lpzyjitlr0.execute-api.us-east-1.amazonaws.com' to ALLOWED_HOSTS.
[1579569465031] Bad Request: /dev/
[1579569465031] [WARNING] 2020-01-21T01:17:45.18Z 39c648fa-bd41-4c97-86de-428c90f48197 Bad Request: /dev/
[1579569465031] [INFO] 2020-01-21T01:17:45.19Z 39c648fa-bd41-4c97-86de-428c90f48197 66.229.9.195 - - 
[21/Jan/2020:01:17:45 +0000] "GET / HTTP/1.1" 400 65810 "" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" 0/95.331

【问题讨论】:

  • 你尝试重启你的在线python服务器了吗?
  • 它的无服务器我正在使用 aws lambda
  • 您的ALLOWED_HOSTgithub.com/coffeeincodeout/membership/blob/master/membership/… 中不包含IpzyjitlrO.execute-api.us-east-1.amazonaws.com。如果你想要一个通配符来允许来自亚马逊的所有主机,你可以做ALLOWED_HOST = ["*.execute-api.us-east-1.amazonaws.com"]django-docs。您可能还想设置它以使用env 变量,这样您就不需要每次更新设置时都提交zappa-docs
  • 是的,我删除了它,因为每次添加它时我都会收到 504 错误,因此由于某些奇怪的原因 URL 无法正常工作。我也尝试使用通配符并遇到了同样的问题。

标签: python django django-rest-framework aws-lambda


【解决方案1】:

发现问题原来是我对 postgreSQL 的数据库连接设置错误。这就是返回 504 错误的原因,当添加到允许的 url 时,它抛出了无效的主机头。一旦我连接数据库并运行收集静态文件,它就可以完美运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    • 2021-03-06
    • 1970-01-01
    • 2016-05-17
    • 2017-04-01
    • 2013-02-20
    相关资源
    最近更新 更多