У меня есть HTTP-прокси-приложение на сервере, которое будет направлять запросы для разных клиентов в зависимости от субдомена, который они использовали для подключения к прокси-серверу. Прокси, являющийся HTTP-сервером, будет ретранслировать HTTPS-запрос, поэтому используется команда CONNECT .

Предположим, клиент использует этот домен для подключения к прокси: client-1.example.com

1) Они посылают строку CONNECT на прокси-сервер, чтобы установить соединение с удаленной целью: host.com

CONNECT host.com:22 HTTP/1.1
Proxy-Authorization: Basic encoded-credentials

2) Прокси отвечает:

HTTP/1.1 200 OK

3) Клиент начинает отправлять зашифрованную часть данных HTTPS, которую прокси-сервер просто передает.

Мой вопрос заключается в том, что во всей этой схеме, как я буду читать поддомен, используемый для подключения к прокси: client-1.example.com?

Я использую подстановочный DNS с **. Example.com *, который разрешит все субдомены к одному IP. Мне нужно использовать поддомен, чтобы мой прокси мог применять некоторые пользовательские правила маршрутизации.

1 ответ1

1

Как я буду читать субдомен, используемый для подключения к прокси: client-1.example.com?

Вы не будете. Как вы уже видите, имя прокси не включено в запросы, отправленные вашими клиентами.

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

Вам придется применять правила, основанные на чем-то другом.

  • Например, добавьте некоторый индикатор к вашим именам пользователей (Proxy-Authorization), чтобы «someuser @ client1» получал один набор правил, а «someuser @ client2» - другой.

  • Также можно назначить прокси-сервер несколько IP-адресов , чтобы у каждого домена был уникальный IP-адрес. Затем прокси-сервер может применять правила на основе "локального адреса", который он видит для сокета соединения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .