Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

django tutorial returns 'ERR_EMPTY_RESPONSE'

I'm following the django tutorial: version 1.8, Ubuntu 10.04, python 3.4 in a virtual environment. I seem to create a django project (yatest) on my Ubuntu server just fine and I start the development server:

(v1)cj@drop1:~/www/yatest$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
August 09, 2015 - 04:37:33
Django version 1.8.3, using settings 'yatest.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

but when I browse to http://myserver:8000 all I get in response is 'ERR_EMPTY_RESPONSE'.

This is the first part of the tutorial before an app is even created. At this early stage in the tutorial it doesn't mention any error log I can check. My telnet client doesn't say anything crashed, and 'ctl-c' will shutdown the server process with no complaints.

Using netstat -lntp I verified no other processes are using port 8000. I do not have Apache installed. I do have gunicorn and nginx installed but both are stopped and not in use yet in the tutorial.

I'm rather new to linux; I could use some help finding an error log or other debugging tools to solve this. I don't doubt I've missed some basic OS setting or something to enable TCP access, etc..

Thanks Clark

like image 665
Clark Avatar asked Dec 04 '22 02:12

Clark


2 Answers

Found my mistake. When starting a dev django server on dedicated server one MUST include the dedicated server's address in the command. This is not needed when launching a dev server on the same machine as your browser. So instead of

$python manage.py runserver

you have to run $python manage.py runserver <server ip>:8000.

So this is my inglorious start on stack exchange. You saw nothing! :P

like image 172
Clark Avatar answered Dec 20 '22 08:12

Clark


If you're running natively in an virtual envrionment, then you need to specify a port and address:

python manage.py runserver 127.0.0.1:8000

For containers, it's easiest to listen to all addresses:

python manage.py runserver 0.0.0.0:8000

For anybody using PyCharm in a docker environment, it's also worth knowing that PyCharm will override your docker-compose configuration to change the runserver command to bind to the port specified in the Host option in your Run/Debug Configurations window.

Make sure you set the Host to 0.0.0.0 and the port to 8000 if you want to use the debugger etc.

like image 30
James Wright Avatar answered Dec 20 '22 07:12

James Wright