我正在尝试设置一个用于应用引擎开发的服务器。我无论如何也想不出如何从外部访问生成的 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