<a id="proxy-protocol"></a>

# Протокол PROXY

Прокси-серверы и балансировщики нагрузки (например HAProxy или AWS ELB) могут передавать
информацию о клиенте (IP-адрес и порт) следующему прокси или балансировщику с помощью протокола PROXY.
Чтобы ANIC мог получить эту информацию, в ресурсе ConfigMap необходимо задать следующие параметры:

- `proxy-protocol` — должен быть установлен в значение `True`;
- `real-ip-header` — должен быть установлен в значение `proxy_protocol`;
- `set-real-ip-from` — IP-адрес или подсеть прокси или балансировщика, откуда будет приходить информация
  (подробнее см. [set_real_ip_from](https://angie.software//angie/docs/configuration/modules/http/http_realip.md#set-real-ip-from)).

#### NOTE
Протокол PROXY будет применяться ко всем ресурсам Ingress и VirtualServer.
Ресурс TransportServer поддерживает протокол PROXY только при включенном `TLS Passthrough`.

## Пример конфигурации

```yaml
kind: ConfigMap
apiVersion: v1
metadata:
  name: angie-config
data:
  proxy-protocol: "True"
  real-ip-header: "proxy_protocol"
  set-real-ip-from: "192.168.0.0/16"
```

В приведенном примере протокол PROXY настраивается через ресурс ConfigMap.
Параметр `set-real-ip-from` установлен в `192.168.0.0/16` — это CIDR-подсеть прокси,
стоящего перед ANIC в этом примере. Если вы хотите доверять всем IP-адресам, можно задать значение `0.0.0.0/0`.
После создания ресурса ConfigMap IP-адрес клиента будет доступен через переменную `$remote_addr` в конфигурации Angie.

По умолчанию ANIC запоминает значение `$remote_addr` и передает его бэкенду в заголовке X-Real-IP.
Стандартный формат журнала Angie по умолчанию:
`'$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"'`.
