我在GAE中部署了我的django项目,除了主要页面之外的所有页面上都出现了502 Bad Gateway错误。之前的版本正在运行,但由于我添加了API存储调用(storages.backends.gcloud.GoogleCloudStorage),因此无效。我在settings.py和app.yaml中添加了环境变量GOOGLE_APPLICATION_CREDENTIALS。日志显示此错误:
[error] 32#32: *111 upstream prematurely closed connection while reading response header from upstream, client: xxx.xxx.xxx.xxx, server: , request: "GET /accounts/login/ HTTP/1.1", upstream: "http://xxx.xxx.xxx.xxx:8080/accounts/login/", host: "xxxx.appspot.com", referrer: "https://xxxx.appspot.com/"
所有人都在本地工作,所以我只有这样的信息。 我尝试了google群组和其他stackoverflow问题,但它无效。
谢谢。
答案 0 :(得分:3)
moment('2020-03-26').day() // I correctly get '4'
会告诉您错误消息,因此请确保检查输出。我的是gcloud app logs tail -s default
我犯的其他一些错误是:
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.
中ALLOWED_HOSTS
和DATABASES
的值错误settings.py
中static_dir
的值错误app.yaml
答案 1 :(得分:2)
我建议使用Django和App Engine解决您的问题。
您提到您已将GOOGLE_APPLICATION_CREDENTIALS添加到settings.py
和app.yaml
文件中。您还应将其添加到用于部署应用程序的系统中。使用此命令:
export GOOGLE_APPLICATION_CREDENTIALS=[path to the .json credentials file]
除此之外,请确保您使用的Django版本比1.2或1.3更新,因为Google Cloud不再支持这些版本。
有关如何配置app.yaml
和settings.py
文件(或您的设)。
根据您使用的Python版本,如果您使用Python 2或here环境(如果您使用Python 3),最好部署在standard环境中。我提供的链接这里有一些教程,可以更好地理解如何将Django与App Engine结合使用。测试完这些教程后,您可以根据代码进行调整,