3

I am trying to setup a server for app engine development. I cannot for the life of me figure out how to access the resulting web server externally. I am running a Debian image, Python GAE.

I have the following firewall rule in place which should let all http traffic through. I have restarted the server since it was setup, although I don't know that it was needed.

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

When I start app engine, I get no errors:

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 

I can't access the server using the external ephemeral IP - I just get a 500 status. I can access the website internally though.

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> 

I know that the external IP is correct, because I use it to SSH in. Any ideas what I could be missing?

Update

I installed Apache and I can get to the default page without issue on port 80. So why is GAE not working with external requests?

1 Answer 1

4

By default, it listens to requests on localhost only. You need to set the --host parameter:

sudo google_appengine/dev_appserver.py --port 80 --host 0.0.0.0 appfiles 
4
  • You da man. Stupid question I guess, but thank you! Commented Aug 21, 2014 at 19:34
  • Not stupid, something I had trouble with with Laravel (PHP)'s artisan serve command myself. Commented Aug 21, 2014 at 19:42
  • 2
    Note that while it will work, it's an unauthenticated webserver, open to the world and if it has any GAE OAuth credentials to access (read or write) your data, it may be abused if discovered, e.g., via port scanning IP ranges. As an alternative, consider using SSH port forwarding to access the app securely instead. Commented Aug 30, 2014 at 17:27
  • Another alternative is to use a Managed VM -- cloud.google.com/appengine/docs/managed-vms , now in beta -- to get a "real" App Engine server running on your GCE w/o the sandbox limitations. dev_appserver.py isn't really meant for anything but local development!-) Alternatively, TyphoonAE, code.google.com/p/typhoonae , and AppScale, appscale.com , may be worth a try, but I have no personal experience with either. Commented Feb 5, 2015 at 18:11

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.