Я предполагаю, что есть очень простое решение для этого, но я обыскал все форумы и руководства по настройке и не могу понять его:
Я создал среду Django/CentOS-6.3 на моем локальном сервере (используя VirtualBox и Vagrant). Когда я запускаю свой сервер в терминале vagrant с 'python manage.py runserver [::]: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.
Однако, когда я пытаюсь перейти на 'http://127.0.0.1:8001
' в браузере (я настроил проброс порта с порта 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, но безрезультатно. Ниже я прокомментирую некоторые из файлов, которые я создал/редактировал.
Если у кого-то есть решение, или даже совет, где начать искать ошибки, я буду очень признателен.
хост' ; "127.0.0.1" не совпадает с гостевым' ; "127.0.0.1". По умолчанию команда
python manage.py runserver
слушает только локальный хост гостя. Вы должны быть в состоянии проверить это из vm (используйте "vagrant 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 runserver" поддерживает IPv6 по умолчанию? Я'никогда не использовал ipv6-адреса в django, но если посмотреть на источник (https://github.com/django/django/blob/master/django/core/management/commands/runserver.py), то там, похоже, есть флаг, который по умолчанию False ("--ipv6"). Возможно, это и есть "настоящая" проблема?
С уважением,
Проверьте свой iptables и остановите его. Ubuntu обычно не открывает iptables при запуске.