Python 不允许的主机位于/无效的HTTP_主机头:Django&;兰姆达
我正在使用zappa将django api上传到aws lambda,该项目是使用django3.0、postgreSQL和django rest框架构建的。在本地,一切正常,但当我将api部署到AWS Lambda时,出现以下错误:Python 不允许的主机位于/无效的HTTP_主机头:Django&;兰姆达,python,django,django-rest-framework,aws-lambda,Python,Django,Django Rest Framework,Aws Lambda,我正在使用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.a
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上有完整的项目
你可以在这里看到日志
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
发现问题的原因是我将数据库连接设置为postgreSQL错误。这就是返回504错误的原因,当添加到允许的URL时,它抛出了无效的主机头。一旦我连接了数据库并运行了“收集静态文件”,它就工作得很好 您是否尝试重新启动联机python服务器?其无服务器服务器我正在使用aws Lambday您的
ALLOWED_主机
中不包含IpzyjitlrO.execute api.us-east-1.amazonaws.com
。如果您想使用通配符来允许来自amazonaws的所有主机,您可以执行允许的\u host=[“*.execute api.us-east-1.amazonaws.com”]
。您可能还想将此设置为使用env
变量,这样您就不需要在每次更新设置时提交了。我删除了它,因为每次添加它时,我都会收到一个504错误,因此出于一些奇怪的原因,URL无法工作。我也试过使用通配符,但也遇到了同样的问题。