Прямые прокси-серверы предоставляют единую точку, через которую несколько компьютеров отправляют запросы на внешний сервер. Они могут применять правила безопасности, регистрировать и анализировать запросы, а также выполнять другие действия, чтобы запросы соответствовали вашим бизнес-правилам. В Edge прямой прокси-сервер обычно является посредником между прокси-серверами API и внешней конечной точкой TargetEndpoint (целевым сервером).
Чтобы использовать прямой прокси-сервер HTTP между Edge и TargetEndpoint, необходимо настроить параметры исходящего прокси-сервера в Message Processor. Эти свойства настраивают процессоры сообщений для маршрутизации целевых запросов от Edge к прямому прокси-серверу HTTP.
Чтобы настроить MP для переадресации прокси-сервера, выполните следующие действия:
- В MP отредактируйте следующий файл:
/opt/apigee/customer/application/message-processor.properties
Если файла
message-processor.propertiesнет, создайте его. - Измените файл, чтобы задать свойства, связанные с прокси-сервером, которые описаны в таблице ниже.
- Убедитесь, что файл свойств принадлежит пользователю apigee:
chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Сохраните изменения в файле свойств.
- Перезапустите MP, как показано в следующем примере:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
В таблице ниже описаны свойства в файле message-processor.properties, которые используются для настройки процессора сообщений для прямого проксирования на бэкенд-сервер.
| Свойство | Описание |
|---|---|
conf_http_HTTPClient.use.proxy |
Разрешает использовать прямой прокси-сервер. Значение по умолчанию – Если вы зададите значение |
conf_http_HTTPClient.use.tunneling |
По умолчанию Edge использует туннелирование для всего трафика. Чтобы отключить туннелирование по умолчанию, задайте для этого свойства значение false. |
use.proxy.host.header.with.target.uri |
Задает целевой хост и порт в качестве заголовка
<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
Если для MP настроено прямое проксирование, то весь трафик, идущий от прокси-серверов API к целевым объектам бэкенда, проходит через указанный прямой прокси-сервер HTTP. Если трафик для определенной цели прокси-сервера API должен идти напрямую к цели бэкенда, минуя прямой прокси-сервер, задайте следующее свойство в TargetEndpoint, чтобы переопределить прямой прокси-сервер HTTP:
<Property name="use.proxy">false</Property>
Дополнительную информацию о настройке свойств TargetEndpoint, в том числе о настройке подключения к целевой конечной точке, можно найти в справочнике по свойствам конечных точек.
Чтобы по умолчанию отключить прямое проксирование для всех целевых объектов, задайте в файле message-processor.properties следующее свойство:
conf_http_HTTPClient.use.proxy=false
Затем задайте для свойства use.proxy значение true для всех TargetEndpoint, которые должны проходить через прямой прокси-сервер 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, который может подключиться к внешним сервисам.