【问题标题】:Hosting website on Google App Engine | 502 Bad Gateway | Worker failed to boot (logger)在 Google App Engine 上托管网站 | 502 错误网关 | Worker 无法启动(记录器)
【发布时间】:2020-04-07 15:31:26
【问题描述】:

我正在关注this guide 在 GAE 上托管一个静态网站。截图是我的文件夹结构,其中“formicidae”是我的项目的根目录,“www”包含一些 HTML、CSS、JS 和图像文件。

使用gcloud app deploy 可以很好地部署,但是当我想使用gcloud app browse 浏览我的应用程序时,我收到 502 bad gateway nginx 错误。

检查记录器时,我收到了ModuleNotFoundError: No module named 'main' 错误,所以我在app.yaml 中添加了一个新入口点,看起来像entrypoint: gunicorn -b :$PORT formicidae.wsgi --timeout 120(也延长了超时时间)。

这并没有解决问题,所以我添加了一个带有from formicidae import app 的虚拟main.py 脚本,但在我的记录器中收到了错误ModuleNotFoundError: No module named 'formicidae'

我将其更改为from www import app,但收到了ImportError: cannot import name 'app' from 'www' (unknown location)

我不确定我是否在这些解决方案中的正确轨道上,应该将“formicidae”或“www”替换为其他内容,或者是否有完全不同的解决方案。

这是完整的记录器输出,显示没有名为“main”的模块的原始错误

Traceback (most recent call last): File "/env/lib/python3.7/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker worker.init_process() File "/env/lib/python3.7/site-packages/gunicorn/workers/gthread.py", line 104, in init_process super(ThreadWorker, self).init_process() File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 129, in init_process self.load_wsgi() File "/env/lib/python3.7/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi self.wsgi = self.app.wsgi() File "/env/lib/python3.7/site-packages/gunicorn/app/base.py", line 67, in wsgi self.callable = self.load() File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load return self.load_wsgiapp() File "/env/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp return util.import_app(self.app_uri) File "/env/lib/python3.7/site-packages/gunicorn/util.py", line 350, in import_app __import__(module) ModuleNotFoundError: No module named 'main'

编辑:添加 app.yaml 内容的屏幕截图

【问题讨论】:

  • 请添加您的app.yaml的内容
  • 根据 strack 跟踪,请注意您使用的是 Python 3.7,而您共享的 documentation 用于 Python 2.7。您是否使用任何 Web 框架,例如 Django 或 Flask?大多数 Web 应用程序使用 WSGI 服务器,例如 Gunicorn、uWSGI 或 Waitress。我鼓励你看看下面的documentation。乍一看,您在启动应用程序时可能缺少一些依赖项。
  • 另外,请发布您的app.yaml 文件内容。随时通知我!
  • 感谢大家的 cmets - 正如您提到的 @sllopis ,我已将我的 app.yaml 内容调整为 python 2.7 并且它有效(添加了屏幕截图)。我现在的问题已经完全转移到如何让它与 Python 3.7 一起使用,但这可能需要发布一个全新的问题。
  • 对于这个应用程序,我没有使用 Django 或 Flask。在网站托管和将前端触发器集成到后端活动中,是否有一个更可取/更容易使用?

标签: google-app-engine web-testing bad-gateway


【解决方案1】:

根据 strack 跟踪,请注意您使用的是 Python 3.7,而您共享的 documentation 用于 Python 2.7。请相应地调整您的app.yaml 文件。

以下documentation 将帮助您迁移到 Python 3 标准运行时。

请注意,当使用 Python 3 运行时,您的应用将使用 Django 或 Flask 等 Web 框架来路由请求。迄今为止,Python 2 通过在 app.yaml 文件中定义 URL 处理程序来实现这一点。

【讨论】:

    猜你喜欢
    • 2020-08-18
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多