Django в Ubuntu 18.04 на виртуальной машине Azure VM не может подключиться ('0.0.0.0', 80) - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь развернуть приложение Django на виртуальной машине Azure с Ubuntu 18.04.

  1. Я настроил виртуальную машину и подключился к ней через SSH.
  2. Затем запуститекоманда обновления и обновления
  3. Настройка Python и Virtualenvironment
  4. Загрузить мой код и активировать среду
  5. Разрешить порт 8000, используя sudo ufw allow 8000 для тестирования
  6. После установки всех требований при запуске команды:

    python manage.py runserver 0.0.0.0:8000
    

Приложение запускается, но когда я открываю URL как:: 8000 /

Он не возвращает ничего, никаких ошибок в консоли

Обновление: Это просто исправляется путем добавления порта 8000 в портале Azure в Inbound port rules.,Но: когда я пытаюсь запустить его через gunicorn как:

gunicorn --pythonpath PROJECT PROJECT.wsgi:application --log-file - --bind 0.0.0.0:80

, он возвращает еще одну ошибку, как показано ниже:

[30007] [ОШИБКА] Не удается подключитьсядо ('0.0.0.0', 80)

Что здесь не так?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Чтобы устранить проблему, связанную с запуском приложения через python manage.py runserver 0.0.0.0:8000, к которому нет доступа, существует две причины проблемы:

  1. Правила входящего порта Azure VM NSG не разрешаливходящий запрос на порт 8000. Чтобы добавить новое правило порта для порта 8000 в NSG на портале Azure, чтобы исправить это, как показано на рисунках ниже.

Рис. 1. Добавление этого правила на рисунке вразрешить входящие запросы порта 8000

enter image description here

Рис. 2. Диалог добавления правила безопасности входящих входящих сообщений

enter image description here

Отредактируйте файл settings.py, чтобы добавить разрешенные хосты или IP-адреса в массив ALLOWED_HOSTS, как показано ниже.

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = ['<your vm ip or DNS name>', 'localhost', '127.0.0.1']

Затем выполните python manage.py runserver 0.0.0.0:8000,Вы можете увидеть страницу индекса Django по умолчанию без каких-либо ошибок в браузере, как показано на рисунке ниже.

Примечание. Сервер gunicorn прослушивает порт 80, который является правилом разрешенного входящего порта по умолчанию.

enter image description here

0 голосов
/ 13 февраля 2019

Вам также необходимо добавить 0.0.0.0:80 к правилам входящего порта.На данный момент он принимает только 8000 запросов портов.

Затем повторите попытку:

gunicorn --pythonpath PROJECT PROJECT.wsgi:application --log-file -b 0.0.0.0:80

Шаги для добавления 80-го порта в Azure:

Вы открываете порт или создаетеконечная точка, к виртуальной машине (VM) в Azure, создав сетевой фильтр в подсети или сетевой интерфейс виртуальной машины.Эти фильтры, которые управляют как входящим, так и исходящим трафиком, помещаются в группу безопасности сети, подключенную к ресурсу, который получает трафик.

Пример в этой статье демонстрирует, как создать сетевой фильтр, который использует стандартный TCPпорт 80 (предполагается, что вы уже запустили соответствующие службы и открыли все правила брандмауэра ОС на виртуальной машине).

1 - после создания виртуальной машины, настроенной для обслуживания веб-запросов на стандартном порту TCP80, вы можете:

2 - создать группу безопасности сети.

3 - создать правило безопасности входящего трафика и разрешить значения следующим параметрам:

4 -Диапазоны портов назначения: 80

5 - Диапазоны портов источника: * (позволяет использовать любой порт источника)

6 - Значение приоритета: введите значение, которое меньше 65 500 и имеет более высокий приоритет, чем значение по умолчаниюуниверсальное запрещающее входящее правило.

Свяжите группу сетевой безопасности с сетевым интерфейсом или подсетью виртуальной машины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...