Я искал в Интернете, но не могу понять, как сделать то, что я ищу. Итак, я ищу прокси-сервер, на котором будет выполняться 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 документация или Вот например) и посмотрите, соответствует ли это вашим потребностям.