Создать URL
Генератор Правила транслитерации Как сделать ЧПУ Блог Вопросы и ответы Создать URL
Разбор

Порт в адресе и когда он появляется

Иногда в адресе сайта неожиданно появляется двоеточие с числом — например, :8080. Разбираем, что это означает технически и почему для рабочего сайта порт не должен быть виден.

Что такое порт технически

Порт — номер, определяющий, к какой именно службе на сервере обращается запрос. Один физический сервер может одновременно обслуживать десятки разных служб, и порт указывает, какую из них нужно вызвать: обычный веб-сайт, почтовый сервер, служебную панель управления.

https://site.ru:443/catalog/
              └┬─┘
            номер порта

Порт присутствует в каждом запросе всегда, даже когда его не видно — просто для двух стандартных значений браузер скрывает его по умолчанию, о чём подробно говорится в общем разборе структуры адреса в статье про из чего состоит URL.

Стандартные порты для веб-протоколов

ПротоколСтандартный портВидим ли в адресной строке
http80Нет, браузер скрывает
https443Нет, браузер скрывает
Нестандартный портЛюбое другое числоДа, показывается явно

Если сайт работает на порту 80 для http или 443 для https, адрес выглядит чисто — https://site.ru/ — без всякого упоминания номера. Это не значит, что порта нет, просто он подразумевается по умолчанию для данного протокола.

Когда номер порта становится видимым

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

http://localhost:3000/          локальная разработка
http://192.168.1.10:8080/       тестовый сервер во внутренней сети
https://site.ru:8443/           нестандартный https-порт

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

Порт в адресе — почти всегда сигнал проблемы для рабочего сайта. Если посетитель или поисковый робот видит в адресной строке номер порта у публичного коммерческого сайта, это означает, что либо сайт всё ещё работает в тестовом режиме, либо настройка сервера сделана неаккуратно и стандартный порт не используется там, где должен.

Проблемы для индексации и SEO

  • Разные адреса — разные страницы. Для поисковой системы site.ru и site.ru:8080 — формально разные адреса, что создаёт риск дублей, если сайт случайно доступен по обоим одновременно.
  • Нечитаемость и недоверие. Посетитель, увидевший непонятный номер порта в адресе, может воспринять сайт как непрофессиональный или подозрительный.
  • Ссылки, скопированные с тестового окружения. Если внутренние ссылки на сайте случайно ведут на адрес с портом разработки, они окажутся нерабочими на боевом сервере.

Как проверить, что порт нигде не просочился

  1. Откройте главную страницу сайта и посмотрите на адресную строку — порта быть не должно.
  2. Проверьте несколько внутренних страниц на разных уровнях вложенности.
  3. Найдите в исходном коде сайта абсолютные ссылки, содержащие двоеточие с числом после домена, — это может указывать на забытые адреса тестового окружения.
  4. Проверьте карту сайта и канонические адреса на отсутствие номера порта.

Как убрать порт из адреса на своём сервере

Если сайт по какой-то причине настроен на нестандартном порту, но должен быть доступен как обычный сайт, задача решается настройкой веб-сервера — Apache или nginx перенаправляют входящие запросы со стандартного порта 80 или 443 на внутренний порт, на котором реально работает приложение, оставляя для внешнего мира привычный чистый адрес без номера.

Чек-лист

  1. На боевом сайте адрес не должен содержать видимый номер порта.
  2. Проверить внутренние ссылки на отсутствие адресов тестового окружения с портом разработки.
  3. Убедиться, что сайт не доступен одновременно по стандартному адресу и по адресу с портом — это создаёт дубли.
  4. Если сервис работает на нестандартном порту, настроить проксирование или перенаправление, чтобы внешний адрес оставался чистым.

Обратный прокси как типичное решение

Самый распространённый способ спрятать нестандартный порт приложения — поставить перед ним обратный прокси-сервер, слушающий стандартный порт 80 или 443 и перенаправляющий запросы внутрь, на реальный порт приложения, невидимый снаружи. Так устроено подавляющее большинство современных сайтов: видимый порт и порт, на котором фактически работает код, — разные вещи, и посетителю никогда не нужно знать о втором.

Посетитель  →  443 (видимый)  →  proxy  →  3000 (реальный, скрытый)

Это же решение снимает и вопрос смешения нескольких сайтов на одном сервере — каждый сайт получает свой домен, а прокси сам определяет, на какой внутренний порт направить конкретный запрос, без каких-либо следов этой маршрутизации в адресной строке.

Порт и защищённое соединение

Стоит отдельно упомянуть путаницу, которая иногда возникает между портом 443 и самим наличием шифрования: порт 443 — это лишь традиционное соглашение, к которому привязан протокол https, а не гарантия того, что соединение защищено. Реальную защищённость обеспечивает сертификат и правильная настройка протокола, а не сам номер порта — теоретически https можно настроить и на любом другом порту, просто это потребует явно указывать его в адресе, что неудобно для посетителей и обычно избегается на боевых сайтах.

Частые вопросы

Почему в адресе обычного сайта не видно номера порта?

Потому что для стандартных портов — 80 для http и 443 для https — браузер скрывает номер по умолчанию. Порт всё равно присутствует в запросе технически, просто не отображается, поскольку подразумевается автоматически.

Что означает, если в адресе сайта видно двоеточие с числом?

Обычно это признак нестандартного порта — сайт работает не на привычном 80 или 443, а на другом значении. Для тестовых и локальных окружений это нормально, для рабочего публичного сайта — почти всегда сигнал проблемы настройки.

Может ли адрес с портом создать дубль страницы?

Да, если сайт случайно доступен одновременно и по стандартному адресу, и по адресу с явным портом — для поисковой системы это два разных URL с одинаковым содержимым.

Готовый адрес можно собрать прямо сейчас: откройте генератор ЧПУ — он транслитерирует фразу по таблице Яндекса, уберёт служебные слова и покажет длину адреса.

Читайте также