Локальный сайт Django не загружается в браузере

Вопрос: Я предполагаю, что там очень простое решение, но я искал каждый форум и руководство по настройке и не мог понять: Я построил среду Django/CentOS-6.3 на моем локальном сервере (используя VirtualBox и Vagrant). Когда я запускаю свой сервер в бродячем терминале с помощью "python manage.py runningerver [::]: 8000", он запускается без ошибок. Validating models... 0

Вопрос:

Я предполагаю, что там очень простое решение, но я искал каждый форум и руководство по настройке и не мог понять:

Я построил среду Django/CentOS-6.3 на моем локальном сервере (используя VirtualBox и Vagrant). Когда я запускаю свой сервер в бродячем терминале с помощью “python manage.py runningerver [::]: 8000”, он запускается без ошибок.

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.

Тем не менее, когда я пытаюсь перейти к ” ” в своем браузере (я настроил переадресацию портов с порта 8000 на порт 8001 в моем Vagrantfile), браузер просто висит в течение 5 минут, пока не истечет время ожидания, то он возвращает сообщение:

> The connection was reset > The connection to the server was reset while the page was loading. > …

Это то же самое сообщение, которое я получаю из браузера, даже после того, как я закрыл свой локальный сервер. Мой компьютер, очевидно, распознает это как перенаправленный порт, потому что любой другой порт, который я пытаюсь (например, 8000), мгновенно возвращает ошибку, заявляя, что не может установить соединение с сервером на 127.0.0.1:8000.

Что касается файлов сервера, в прошлом я делал много подобных настроек с Django/Ubuntu и никогда не имел никаких проблем, но должно быть что-то другое в Django/CentOS, которое вызывает это (или, может быть, я ошибся кто-то в одном из моих файлов сервера). Я следил за инструкциями по настройке Django и PostgreSQL на CentOS, но безрезультатно. Я прокомментирую некоторые из файлов, которые я создал/отредактировал ниже.

Если у кого-то есть решение или даже есть советы о том, где начать искать ошибки, я бы очень признателен.

Ответ №1

Если ваша сеть настроена правильно, а ваше приложение django с

python manage.py runningerver 0.0.0.0:8000

и вы по-прежнему не можете получить доступ к своему приложению django с хоста VM, почти наверняка проблема с брандмауэром. Решение выше хорошо, если вы используете iptables.

Я развернул CentOS 7 на виртуальной виртуальной машине с хоста Windows 7. Я не знал, что этот дистрибутив использует firewalld, а не iptables для контроля доступа.

если

ps -ae | grep firewall

возвращает что-то вроде

602? 00:00:00 firewalld

ваша система работает firewalld, а не iptables. Они не бегут вместе.

Чтобы исправить вашу виртуальную машину, чтобы вы могли получить доступ к своему сайту django от хоста, используйте команды:

firewall-cmd –zone = public –add-port = 8000/tcp –permanent

firewall-cmd –reload

Большое спасибо pablo v за указание на это в сообщении “Доступ к серверу django на виртуальной машине”.

Ответ №2

хост “127.0.0.1” не совпадает с гостевой “127.0.0.1”. По умолчанию команда

python manage.py runserver

Слушает только гостевой локальный хост. Вы должны быть в состоянии проверить это изнутри vm (использовать “бродяга ssh” для входа в систему) и запустить

curl -I http://127.0.0.1:8000/

Хост как другой IP. Чтобы получить доступ к серверу разработки с хоста, вы должны запустить его без ограничения ip:

python manage.py runserver 0.0.0.0:8000

Да:

python manage.py runserver [::]:8000

должны быть одинаковыми. Но этот синтаксис IPv6 AFAIK. Вы уверены, что команда “manage.py runningerver” поддерживает IPv6 по умолчанию? Я никогда не использовал адреса ipv6 w/django, но, глядя на источник (https://github.com/django/django/blob/master/django/core/management/commands/runserver.py), швы должны быть флаг, по умолчанию для False (“–ipv6”). Может быть, это “настоящая” проблема?

С Уважением,

Ответ №3

Для подобной проблемы,

Эта команда работала как прелесть для меня

python manage.py runserver [::]:8001 Ответ №4

Проверьте свои iptables и остановите его. Ubuntu обычно не открывает iptables при его запуске.

Оцените статью
Добавить комментарий