Как удалить номер порта из URL-адреса HTTP-запроса?

Я использую httpd-сервер для балансировки нагрузки и как веб сервер. Я хочу преобразовать свой запрос из: http: // hostname: port / service в http: // hostname / service Как это можно сделать с помощью RewriteRule или любой другой техники?

-1
задан 20 June 2019 в 08:54
1 ответ

: порт происходит из схемы URI ( RFC 3986, 3 ). Компоненты синтаксиса:

  foo: //example.com:  8042 / там / там? Name = хорек # нос
  \ _ / \ ______________ / \ _________ / \ _________ / \ __ /
  |  |  |  |  |
  фрагмент запроса пути авторизации схемы
 

3.2.3. Порт

Подкомпонент порта полномочий обозначается необязательным номер порта в десятичном формате после хоста и отделен от него символом один символ двоеточия (: ).

  порт = * DIGIT
 

Схема может определять порт по умолчанию. Например, схема http определяет порт по умолчанию 80 , соответствующий зарезервированному TCP номер порта. Тип порта, обозначенный номером порта (например, TCP, UDP, SCTP) определяется схемой URI. Производители URI и нормализаторы должны опускать компонент порта и его разделитель ":", если порт пуст, или если его значение будет таким же, как у схема по умолчанию.

Следовательно,

  • http://example.com равно ТОЛЬКО http://example.com:80
  • https://example.com равно ТОЛЬКО https://example.com:443
  • для любого другого порта порт отображается в URL-адресе.

Если у вас есть веб-служба, например на http://example.com:8080/service , и вы хотите использовать другой веб-сервер (например, в качестве балансировщика нагрузки) на http://example.com/service , вам понадобится обратный прокси на веб-сервере, который прослушивает порт 80 . В Apache это делается с помощью модуля mod_proxy :

<Location "/service">
  ProxyPass "http://example.com:8080/service"
</Location>
1
ответ дан 5 December 2019 в 19:38

Теги

Похожие вопросы