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

Прокси + PHP: фильтрация и обработка определенных прокси-запросов и ответов с помощью сценариев PHP

Мне нужно настроить прокси-сервер на машине A в сети X. Затем мне нужно подключить клиента (смартфон) к той же сети X, но с конфигурацией прокси, такой же, как и на машине A. Итак, в основном смартфон собирается пройти через машину A, прежде чем достигнет Интернета и получит удаленный ответ.

Я пробовал использовать Apache и его модуль mod_proxy.so.

Что мне действительно нужно сделать, так это то, что когда клиент (смартфон) запрашивает конкретный URL-адрес (например, Google), прокси-сервер должен фильтровать запрос и отправлять его в PHP-скрипт, запрограммированный для обслуживания запроса и отправки конкретного ответа. клиенту (а НЕ исходному ответу удаленного сервера). Для всех остальных запросов (веб-сайтов и сайтов) все будет нормально (без фильтрации прокси-сервером).

Я пробовал использовать Forward Proxy на Apache, но у меня просто отслеживается файл доступа к журналу. Ничего более. Я не могу создать «перенаправление» для конкретных запросов.

Затем я подумал о обратном прокси, пытаясь перенаправить определенные в локальное место через ProxyPass и ProxyPassReverse. Не сработало. Похоже, что обратный прокси работает только для локальных запросов, которые должны быть разрешены снаружи или внутри. Но не работать для разрешения внешних запросов на локальные.

Затем я попытался поиграть с mod_ext_filter.so и поигрался с «SetOutputFilter», создав вызов php.exe (реализация Windows) и конкретный скрипт test.php для печати массива $ _SERVER, и мне удалось просмотреть правильный REQUEST_URI со своего смартфона (клиента), распечатываю файл на «C: \».

Но затем, когда сценарий завершается, клиент не получает ответа. Так что это тоже не лучший подход.

Что я должен делать? Кто-то говорил со мной о SQUID и Content Adaptation, но я не уверен в этом.

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

Внешний перенаправитель - это просто небольшая программа, которая получает запросы от squid на stdin, при необходимости переписывает их, а затем возвращает в squid на stdout.