Как настроить прямой прокси-сервер

Прямые прокси-серверы предоставляют единую точку, через которую несколько машин отправляют запросы на внешний сервер. Они могут применять правила безопасности, регистрировать и анализировать запросы, а также выполнять другие действия, чтобы запросы соответствовали правилам вашей компании. В Edge прямой прокси-сервер обычно выступает посредником между прокси API и внешним TargetEndpoint (целевым сервером).

Чтобы использовать прямой прокси-сервер HTTP между Edge и TargetEndpoint, необходимо настроить исходящие настройки прокси-сервера в процессорах сообщений. Эти свойства настраивают процессоры сообщений для маршрутизации целевых запросов из Edge на HTTP-прокси-сервер.

Чтобы настроить процессор сообщений для пересылки прокси-сервера:

  1. На сервере управления измените следующий файл:
    /opt/apigee/customer/application/message-processor.properties

    Если файла message-processor.properties нет, создайте его.

  2. Измените файл, чтобы задать свойства, связанные с прокси-сервером, как описано в таблице ниже.
  3. Убедитесь, что файл свойств принадлежит пользователю apigee:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. Сохраните изменения в файле свойств.
  5. Перезапустите MP, как показано в следующем примере:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

В таблице ниже описаны свойства файла message-processor.properties, которые используются для настройки MP для пересылки запросов через прокси-сервер на серверную часть.

Свойство Описание
conf_http_HTTPClient.use.proxy

Разрешает использовать прямой прокси-сервер. Значение по умолчанию – true. Это означает, что вы можете использовать прямой прокси-сервер на уровне прокси-сервера API, добавив соответствующий XML-код в конфигурацию пакета.

Если вы зададите значение false, использовать прямой прокси-сервер будет нельзя.

conf_http_HTTPClient.use.tunneling

По умолчанию Edge использует туннелирование для всего трафика. Чтобы отключить туннелирование по умолчанию, задайте для этого свойства значение false.

use.proxy.host.header.with.target.uri

Задает целевой хост и порт в качестве заголовка Host. По умолчанию хост и порт прокси-сервера задаются в заголовках Host. Это свойство можно задать только в целевой конечной точке. Пример:

<HTTPTargetConnection>
    <Properties>
        <Property name="use.proxy.host.
         header.with.target.uri">true
        </Property>
    </Properties>
    <URL>https://mocktarget.apigee.net/
     my-target</URL>
</HTTPTargetConnection>

conf/http.properties+HTTPClient.proxy.type

Указывает тип HTTP-прокси: HTTP или HTTPS. По умолчанию используется протокол HTTP.

conf/http.properties+HTTPClient.proxy.host

Указывает имя хоста или IP-адрес, на котором работает HTTP-прокси.

conf/http.properties+HTTPClient.proxy.port

Указывает порт, на котором работает HTTP-прокси. Если это свойство не указано, по умолчанию используется порт 80 для HTTP и порт 443 для HTTPS.

conf/http.properties+HTTPClient.proxy.user
conf/http.properties+HTTPClient.proxy.password

Если для прокси-сервера HTTP требуется базовая аутентификация, используйте эти свойства, чтобы указать данные для авторизации.

Пример:

conf_http_HTTPClient.use.proxy=true
conf_http_HTTPClient.use.tunneling=false
conf/http.properties+HTTPClient.proxy.type=HTTP
conf/http.properties+HTTPClient.proxy.host=my.host.com
conf/http.properties+HTTPClient.proxy.port=3128
conf/http.properties+HTTPClient.proxy.user=USERNAME
conf/http.properties+HTTPClient.proxy.password=PASSWORD

Если для процессора сообщений настроено прямое проксирование, то весь трафик, идущий от прокси API к целевым серверам, проходит через указанный прямой прокси HTTP. Если трафик для определенной цели прокси-сервера API должен направляться непосредственно в целевой сервер, минуя прямой прокси-сервер, задайте следующее свойство в TargetEndpoint, чтобы переопределить прямой прокси-сервер HTTP:

<Property name="use.proxy">false</Property>

Подробнее о том, как задавать свойства TargetEndpoint, в том числе настраивать подключение к целевой конечной точке, рассказывается в справочнике по свойствам конечных точек.

Чтобы по умолчанию отключить прямое проксирование для всех целевых объектов, задайте следующее свойство в файле message-processor.properties:

conf_http_HTTPClient.use.proxy=false

Затем задайте для параметра use.proxy значение "true" для всех целевых конечных точек, которые должны проходить через HTTP-прокси-сервер:

<Property name="use.proxy">true</Property>

По умолчанию Edge использует туннелирование для трафика, направляемого на прокси-сервер. Чтобы отключить туннелирование по умолчанию, задайте следующее свойство в файле message-processor.properties:

conf_http_HTTPClient.use.tunneling=false

Если вы хотите отключить туннелирование для определенного целевого объекта, задайте свойство use.proxy.tunneling в TargetEndpoint. Если целевой объект использует TLS/SSL, это свойство игнорируется, и сообщение всегда отправляется через туннель:

<Property name="use.proxy.tunneling">false</Property>

Чтобы Edge выступал в качестве прямого прокси-сервера, получая запросы от бэкенд-служб и направляя их в интернет за пределами предприятия, сначала настройте прокси-сервер API в Edge. Затем бэкенд-служба может отправить запрос прокси-серверу API, который, в свою очередь, может подключиться к внешним сервисам.