2013-11-12 1 views
3

Итак, я просмотрел переполнение стека + другие сайты, но havent смог решить эту проблему: отсюда сообщение этого вопроса!Как мне получить доступ к моему приложению django, работающему на Amazon ec2?

Я недавно начал изучать django ... и теперь я пытаюсь запустить его на ec2.

У меня экземпляр ec2 этого формата: ec2-xx-xxx-xx-xxx.us-west-2.compute.amazonaws.com, на котором работает приложение django. Я изменил группу безопасности этого экземпляра, чтобы разрешить соединения с http-портом 80.

Я попытался запустить приложение django следующими способами: python manage.py runningerver 0.0.0.0:8000 и python manage.py runningerver ec2-xx-xxx-xx-xxx.us-west-2.compute .amazonaws.com: 8000, и это, похоже, не помогает!

Чтобы убедиться, что со стороны django ничего не случилось, я открыл другое окно терминала и ssh'ed в экземпляр и выполнил запрос GET для локального хоста: 8000/admin, который прошел успешно.

Куда я иду не так? Поблагодарите любую помощь!

+0

Это может быть проблема ограничения порта. Вы должны сделать свое приложение запущенным на порту 80 или 8080 вместо 8000. –

ответ

9

Вы используете приложение на порту 8000, если этот порт не открыт на экземпляре (вы только открыли порт 80).

Так как близко порт 80 и открыть порт 8000 из группы безопасности, или запустить приложение на порт 80.

Запуск любого приложения на порт, который меньше, чем 1024 требует привилегий суперпользователя; поэтому, если вы попытаетесь сделать python manage.py runserver 0.0.0.0:80 обычным пользователем, вы получите сообщение об ошибке.

Вместо того чтобы делать sudo python manage.py runserver 0.0.0.0:80, у вас есть несколько вариантов:

  1. Run предварительно сконфигурированные AMI изображение для Джанго (как this one от BitNami).

  2. Настройка внешнего сервера для прослушивания на порту 80, а затем прокси-запросы к вашему приложению django. Общий стек здесь - nginx + gunicorn + supervisor, а this blog post объясняет, как установить это (наряду с виртуальной средой, которая всегда является хорошей привычкой).

+0

Работал! Черт возьми, Бурхан! Я думал, что добавление HTTP-соединений - все, что нужно. Мне нужно было добавить TCP-соединения на порт 8000 в мою группу безопасности. Работает сейчас. Благодаря! – kakka1234

+0

У меня такая же проблема, можно завивать, не могу получить доступ к странице из общедоступных dns ec2, я получаю ошибку 404, nginx. Я добавил правило tcp для порта 8000 –

Смежные вопросы