Почему сервер Django по умолчанию использует порт 8000?

9

(Мой вопрос на самом деле не о Django. Он об альтернативных http-портах. Просто я знаю, что Django - это относительно известное приложение, которое использует 8000 по умолчанию, поэтому оно показательно.)

У меня есть дикий сервер, в котором нам иногда нужно запускать несколько служб httpd на разных портах. Когда мне понадобилось подключить третий сервис, и мы уже использовали порты 80 и 8080, я обнаружил, что наша команда безопасности заблокировала доступ к порту 8000 из Интернета. Я понимаю, что порт 80 - это стандартный http-порт, а 8080 - это обычно http_alt, но я бы хотел, чтобы наша команда по безопасности также открыла 8000. Для этого я надеюсь, что ответ на этот вопрос может дать мне разумный аргумент в пользу использования порта 8000 через 8080 в некоторых случаях.

Или это был случайный выбор без смысла?

Кодзиро
источник
1
Иногда номер порта - это просто номер порта (и до тех пор, пока он> 1024, операционная система не заботится - однако IANA будет признательна, если вы зарегистрировали нужный номер, а не просто захватили его и надеялись, что никто другой не использует его)
voretaq7

Ответы:

14

Причина, по которой вы не используете 80, заключается в том, что вам нужно быть пользователем root, чтобы использовать любой порт менее 1024, поскольку это привилегированные порты. Теперь вы можете запустить сервер dev на другом порту, запустив

python manage.py runserver 0.0.0.0:8080

Это свяжет сервер dev со всеми ips на порте 8080. Обычно выбор 8000 - это просто добавление 2 0 к обычному http порту. Кроме того, так как 8080 также популярен и, возможно, уже используется.

Майк
источник