У нас есть несколько серверов ec2 для нашего приложения, которые обслуживаются балансировщиком нагрузки aws. Теперь из-за наших особых требований нам пришлось использовать балансировщики нагрузки tcp.
С помощью балансировщиков нагрузки tcp мы не могли отслеживать IP-адрес пользователя, однако после того, как я применил определенные настройки, балансировщик нагрузки добавляет IP-адрес пользователя в качестве заголовка прокси-сервера, а затем перенаправляет пакет в EC2.
В EC2 (где мы используем Apache) для обработки пакетов с заголовками прокси нам нужно было включить RemoteIPProxyProtocol. И это работает для трафика через эти балансировщики нагрузки. Однако у нас есть ряд хостов / доменов, которые напрямую настроены для некоторых из EC2, т.е. трафик для этих хостов не проходит через балансировщик нагрузки, а пакет подключения не содержит заголовок прокси, и поэтому для них apache перестает работать как ему нужны все HTTP-соединения с прокси-заголовком.
Что мне нужно, так это то, что мы можем условно включить RemoteIPProxyProtocol, обнаружив, что у соединения есть заголовок прокси или нет? Также обратите внимание, что я не могу использовать имена хостов для условий, так как у меня их сотни, и они будут продолжать увеличиваться ??
Пожалуйста, помогите.
ПРИМЕЧАНИЕ: я попытался перенаправить трафик от балансировщика нагрузки на EC2 на порт 81 и 444, и для этих портов в apache я включил RemoteIPProxyProtocol, однако мне нужно было перенаправить трафик с 444 на 443 для дешифрования SSL, но этого не произошло. работай.
Сообщение от :. https://stackoverflow.com/questions/54587257/how-to-enable-remoteipproxyprotocol-conditional-in-apache-only-if-connection-c
После долгих исследований я обнаружил, что нет возможности включить RemoteIPProxyProtocol, обнаружив заголовок прокси.
Однако я добился этого, используя HAProxy на том же сервере, что и apache. Я перенаправил трафик от балансировщика нагрузки на EC2 на порты 580 и 5443, а не на 80 и 443. Пока я настраивал HAProxy для прослушивания портов 580 и 5443 на том же ec2. Затем HAProxy проанализирует заголовок протокола прокси из пакета, удалит его и перенаправит фактический IP-адрес клиента (найденный в заголовке протокола прокси) в apache на портах 80 и 443.
Оно работает !!