EC2 instance can not access in browser - django

I created one EC2 instance for Django project with Ubuntu server.
I installed all required package of django, python etc successfully.
But when I am trying through ssh with private ip : python manage.py runserver xxx.xx.xx.xx:8983 its running, but when I am trying to load it through browser its gives as error : "The Connecion has timed out"
I have assigned VPC security group to this instance.
Also, I try with public IP address through SSH: : python manage.py runserver XXX.XX.XX.XX:8983
It gave error as follows :
Validating models...
0 errors found
July 15, 2015 - 22:34:10
Django version 1.6.7, using settings 'conf.settings.local'
Starting development server at http://xx.xx.xxx.xx:8983/
Quit the server with CONTROL-C.
Error: That IP address can't be assigned-to.
And same error occurred when I run in browser.
I also tried following both options but no luck
0:8000
0.0.0.0:8000 port running successfully in ssh with python manage.py but not in browser.
I checked /etc/network/interfaces this file, following lines already exists there:
auto lo
iface lo inet loopback
Anybody has any other solution?

Daya,
I try run with port 0:8000 0.0.0.0:8000 but no use.
Also, /etc/network/interfaces file was perfect.
But In my case, solution for this problem was to change script file's location.
I mean to say my django application folder location was /home/ubuntu
but when I move it to /Var/www it worked.It worked because server is apache2.

Related

How can I connect to Django development server on Codenvy?

I'm currently testing Django on Codenvy but I have difficulties to find out how to connect to the build-in development server of Django.
I added a server in the Workspace configuration with port 8000 and http protocole.
I added the following in the run command of Codenvy's project :
Commande line :
cd ${current.project.path} && python manage.py runserver
Preview :
http://${server.port.8000}
The run prompt provide me a url : http://nodexx.codenvy.io:xxxxx
Going to this URL print a message : ERR_CONNECTION_REFUSED
I'm very new to all of this. Do you know what is missing ?
Django dev server by default accepts connections only from localhost. In order to access it from another machine, start runserver by binding it with an IP, or 0 for the app to be accessed from everywhere.
python manage.py runserver 0:8000
The above command runs the server in 8000 port, binding the network to 0.0.0.0, which means the app can be accessed from anywhere

Creating Django project on server with nginx

We have a dev server with the internal hostname dev1.internal.blah.com running nginx. I'm trying to create a test Django project testproject from the Django tutorial on this server. I access this server by ssh-ing into it.
So on this server I installed Django, created a new directory, issued django-admin startproject mysite within it, then issued python manage.py runserver 8765 and got the
success message Starting development server at http://127.0.0.1:8765/
Now how would I access the http://127.0.0.1:8765 site from a browser? I tried using http://dev1.internal.blah.com:8765 but got a This site can't be reached error message.
If I try curl http://127.0.0.1:8765 from the terminal, I see the correct html being rendered.
The nginx www directory is located at /usr/share/nginx/html if it helps.
By default, Django development server runs on port 8000 on the IP address 127.0.0.1, but note that that IP address is accessible only from your own server.
To make the runserver viewable to others, use either its own IP address or 0.0.0.0. or :: with IPv6 enabled.
So, you should probably run it like this:
python manage.py runserver 0.0.0.0:8765

Changing localhost to public IP in a VM

I am testing RTD to build our API docs implementation, so running a local installation of RTD in a virtualenv within a debian VM. The ./manage.py runserver command runs the RTD server successfully.
Validating models...
0 errors found
March 25, 2015 - 03:11:57
Django version 1.6.10, using settings 'settings.sqlite'
Starting development server at http://127.0.0.1:8000/
To access the RTD admin console from my laptop browser (outside the VM) I would like to change the localhost to the public IP. For that, I changed the IP references in:
/etc/hosts
settings/sqlite.py (section
Internal_ips, and a few other occurrences)
But, it continues to build the server at http://127.0.0.1:8000/
Where should I be configuring this? What else should I be doing?
RESOLVED
Run the RTD server as:
./manage.py runserver 0.0.0.0:8000
OR
./manage.py runserver [VM IP ADDRESS]:8000

Local Django website won't load in browser

I'm guessing there's a very simple solution to this, but I searched every forum and setup guide and can't figure it out:
I built a Django/CentOS-6.3 environment on my local server (using VirtualBox and Vagrant). When I startup my server in the vagrant terminal with 'python manage.py runserver [::]:8000' it starts up with no errors.
Validating models...
0 errors found
May 31, 2013 - 13:56:15
Django version 1.5.1, using settings 'mysitename.settings'
Development server is running at http://[::]:8000/
Quit the server with CONTROL-C.
However, when I try to navigate to 'http://127.0.0.1:8001' in my browser (I set up port forwarding from port 8000 to port 8001 in my Vagrantfile), the browser just hangs for 5 minutes until it times out, then it returns the message:
> The connection was reset
> The connection to the server was reset while the page was loading.
> ...
This is the exact same message I get from the browser even after I shut down my local server. My computer obviously recognizes this as a forwarded port, because any other port I try (such as 8000) instantly returns an error saying that it can't establish a connection to the server at 127.0.0.1:8000.
With regard to the server files, I have done many similar setups with Django/Ubuntu in the past and have never had any issues, but there must be something different about Django/CentOS that is causing this to happen (or maybe I made a mistake someone in one of my server files). I have followed guides for setting up Django & PostgreSQL on CentOS, too, but to no avail. I'll comment some of the files I have created/edited below.
If anyone has a solution, or even has advice on where to start looking for errors, I would very much appreciate it.
If your network is configured correctly and your django application with
python manage.py runserver 0.0.0.0:8000
and you still can't access your django app from the VM host there is almost certainly a firewall issue. The solution above is good if you are running iptables.
I deployed CentOS 7 on a virtualbox VM from a Windows 7 host. I didn't know that this distribution uses firewalld, not iptables to control access.
if
ps -ae | grep firewall
returns something like
602 ? 00:00:00 firewalld
your system is running firewalld, not iptables. They do not run together.
To correct you VM so you can access your django site from the host use the commands:
firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --reload
Many thanks to pablo v for pointing this out in the post "Access django server on virtual Machine".
the host's "127.0.0.1" is not the same as the guest's "127.0.0.1". Per default the command
python manage.py runserver
listens only to the guest's localhost. You should be able to test it from within the vm (use "vagrant ssh" to login) and run
curl -I http://127.0.0.1:8000/
The host as a different IP. To access the development server from the host you have to start it without ip restriction:
python manage.py runserver 0.0.0.0:8000
Yes:
python manage.py runserver [::]:8000
should be the same. But that's IPv6 syntax AFAIK. Are you sure that the "manage.py runserver" command supports IPv6 by default? I've never used ipv6 addresses w/ django, but looking at the source (https://github.com/django/django/blob/master/django/core/management/commands/runserver.py) there seams to be a flag that the default to False ("--ipv6"). Perhaps that's the "real" problem?
Regards,
For a similar problem,
This command worked like a charm for me
python manage.py runserver [::]:8001
Check your iptables, and stop it. Ubuntu commonly does not open the iptables when it starts.

EC2 hosts Django with IP address can't be assigned-to error

I have a EC2 instance want to run Django app on it. This EC2 instance already have a Apache server on port 80. Now I want to host my Django project on port 9090. The instance has static IP 200.200.200.200.
ubuntu#ip-10-242-229-213:~/flanders$ python manage.py runserver
200.200.200.200:9090 Validating models...
0 errors found Django version 1.3.1, using settings
'flanders.settings' Development server is running at
http://200.200.200.200:9090/ Quit the server with CONTROL-C. Error: That
IP address can't be assigned-to. ubuntu#ip-10-242-229-213:~/flanders$
It tells me Error: That IP address can't be assigned-to, So I change to
ubuntu#ip-10-242-229-213:~/flanders$ python manage.py runserver
127.0.0.1:9090 Validating models...
0 errors found Django version 1.3.1, using settings
'flanders.settings' Development server is running at
http://127.0.0.1:9090/ Quit the server with CONTROL-C.
The application starts without problem but when I try to access it http://200.200.200.200:9090/flandersapp/tags, I doesn't work. By the way, I allow port 9090 in my security setting.
I solved myself. I need to use the private IP provided by EC2 instead of public IP