在 Google Compute Engine 上运行 Google App Engine

在 Google Compute Engine 上运行 Google App Engine

我正在尝试设置一个用于应用引擎开发的服务器。我无论如何也想不出如何从外部访问生成的 Web 服务器。我正在运行 Debian 映像 Python GAE。

我已设置以下防火墙规则,该规则应允许所有 http 流量通过。设置服务器后,我已重新启动服务器,尽管我不知道是否有必要这样做。

Source Ranges:
    0.0.0.0/0
Allowed Protocols or Ports:
    tcp:1-65535

当我启动应用程序引擎时,没有收到任何错误:

admin@dev:~$ sudo google_appengine/dev_appserver.py --port 80 appfiles
WARNING  2014-08-21 18:19:18,080 api_server.py:383] Could not initialize images API; you are likely missing the Python "PIL" module.
INFO     2014-08-21 18:19:18,083 api_server.py:171] Starting API server at: http://localhost:45536
INFO     2014-08-21 18:19:18,086 dispatcher.py:183] Starting module "default" running at: http://localhost
INFO     2014-08-21 18:19:18,086 admin_server.py:117] Starting admin server at: http://localhost:8000

我无法使用外部临时 IP 访问服务器 - 我只得到 500 状态。我虽然可以从内部访问该网站。

admin@dev:~$ curl http://localhost/register/ > test.htm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   815  100   815    0     0   2285      0 --:--:-- --:--:-- --:--:--  2295

admin@dev:~$ tail test.htm
    Email: <input type='email' id='email' name='email' /><br />
    Password: <input type='password' id='password' /><br />
    <input id='submit' type="submit" value="Register" />
  </form>
    </section>
    <footer><small>Website Footer</small></footer>
  </body>
</html>

我知道外部 IP 是正确的,因为我用它来通过 SSH 登陆。有什么想法我可能遗漏了什么吗?

更新

我安装了 Apache,并且可以通过端口 80 顺利进入默认页面。那么为什么 GAE 不能处理外部请求呢?

答案1

默认情况下,它只监听请求localhost。您需要设置--host范围:

sudo google_appengine/dev_appserver.py --port 80 --host 0.0.0.0 appfiles

相关内容