Назад | Перейти на главную страницу

Apache как прокси-сервер пересылки на динамический IP

Я искал в Интернете, но не могу понять, как сделать то, что я ищу. Итак, я ищу прокси-сервер, на котором будет выполняться HTTP-запрос на основе IP-адреса, который я указал в URL-адресе (GET).

Так, например:

Я прошу : http://host/query/IP_A Он должен сделать следующее: ME => GET HTTP myhost / query / IP_A => GET IP_A ===> GET HTTP-запрос к IP_A и возврат отправителю!

Я читал про proxypass, reverseproxy, proxymatch и mod_rewrite ... но я не могу понять, почему он вообще не работает! И логов у меня нет .... что не круто, когда пришло время отладки! :-(

вот моя настоящая конфигурация:

<VirtualHost *:80>
 ServerName myServer
 DocumentRoot /home/me/www/htdocs
 #       RewriteCond ^.*/query/(.*)
 #       RewriteRule (.*) http://$1 [P]
 ProxyPassMatch ^.*/query/(.*) http://$1
 ErrorLog logs/me-error_log
 CustomLog logs/me-access_log debug
</VirtualHost>

Вот статический рабочий пример:

ProxyPass / http://IP_A
ProxyPassReverse / http://IP_A

Поэтому, когда я получаю доступ к веб-серверу, он направляется на IP-адрес и возвращает мне HTTP-ответ.

Спасибо за помощь!

Ваш вариант использования немного неясен. Это очень похоже на обычный веб-прокси (который принимает запросы от вашего браузера, а затем извлекает контент с удаленного сайта от имени вашего браузера).

Но делать то, что хочешь:

<VirtualHost *:80>
    RewriteRule ^/query/(.*) http://$1 [P]
<VirtualHost *:80>

Это займет что угодно о /query/ и добавьте его в http://, а затем запросить результат через прокси. Как сказал @EEAA, это кошмар безопасности (кто-то может использовать ваш сервер для атаки удаленной системы), но он будет делать то, что вы хотите.

Вы можете прочитать об использовании Apache в качестве прямого прокси (как описано в mod_proxy документация или Вот например) и посмотрите, соответствует ли это вашим потребностям.