Я выполняю апача как вперед прокси, чтобы сделать инжекцию заголовка, управление URL и запрос, регистрирующийся для некоторых приложений для Android, и я должен был бы переопределить место назначения для некоторых запросов.
Например, www.example.com
имел бы IP-адрес 1.2.3.4
но я должен отклонить трафик к 4.3.2.1
не изменяя приложение или влияя на любые другие приложения, работающие на апачском сервере.
Мне также была бы нужна гибкость для переопределения адреса при различных условиях, что означает то управление /etc/hosts
не опция.
Клиенты являются приложениями, работающими на эмуляторах Android, которые настроены для использования апачских экземпляров прокси, работающих на хост-машине.
До сих пор у меня есть установка как это:
## conf.d/proxy_a.conf
## proxy_b.conf, proxy_c.conf listen on different ports with different mappings / headers
Listen localhost:16002
<VirtualHost localhost:16002>
ProxyRequests On
ProxyPreserveHost On
RewriteEngine On
<Proxy "http://www.example.com/*">
Order deny,allow
Deny from all
Allow from localhost
RequestHeader set host "www.example.com"
RewriteRule ^/?(.*) http://4.3.2.1/$1 [NE]
</Proxy>
<Proxy *>
Order deny,allow
Deny from all
Allow from localhost
</Proxy>
## also tried, doesn't work
#RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
#RewriteRule ^/?(.*) http://4.3.2.1/$1 [NE]
RequestHeader set x-custom-header "abcdefgh"
RequestHeader merge user-agent "proxy16002"
</VirtualHost>
Я знаю, что функциональность, которую я ищу, легко достижима с обратным прокси, но я ищу решение с помощью прямого прокси (никакая потребность изменить /etc/hosts
или приложения).
Что отсутствует? Это даже возможно с апачем (2.2)?
Возможно, это не то, что вам нужно, но вы можете настроить другой Прокси-сервер Apache, например, на виртуальной машине, и измените там файл / etc / hosts. Затем трафик будет проходить через два прокси - один, за которым вы сейчас следите, другой, который вы настроили на виртуальной машине. Не идеальный, я знаю, но возможное решение, если никто не придумает что-то лучшее.
В качестве альтернативы вы можете изменить исходный код Apache и перекомпилировать его, но это тоже не идеально.