За последние 24 часа нас посетили 22765 программистов и 1012 роботов. Сейчас ищут 794 программиста ...

Как из сайта сделать прокси сервер...

Тема в разделе "Прочие вопросы по PHP", создана пользователем enshtein, 27 авг 2006.

  1. enshtein

    enshtein Активный пользователь

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    У меня есть сайт с поддержкой PHP, хочу сделать так чтобы когда я прописывал в настройках брайузер - Прокси (IP адрес хостинга + порт (80)), мой брайзер запрашивал бы страничку, скрипт PHP на хостинге получал бы ее, сжимал по GZIPу, и отправлял обратно браузеру - т.е. своебразный gzip-прокси сервер на php????

    Облазил много форумов - не могу даже понять как сделать банальную вещь - чтобы когда я в строке браузера набирал бы например http://yandex.ru - то браузер обращался к моему хостингу как к проксику по 80 порту - а там PHP-скрипт, т.е. index.php считывал бы url и просто переходил бы по нему.... т.е. загрузил бы страницу http://yandex.ru - интересует конкретный кусок кода
     
  2. Davil

    Davil Guest

    В свойствах обозревателя
     
  3. svk

    svk Активный пользователь

    С нами с:
    7 авг 2006
    Сообщения:
    506
    Симпатии:
    0
    Адрес:
    NetByNet
    не совсем представляю как ты это сделать собрался, т.к. даже если апач и пропустит запрос браузера то из скрипта полный дамп принятого хеадера не получишь (вроде)
     
  4. enshtein

    enshtein Активный пользователь

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    Да да ... настройки именно в свойствах обозревателя - там адрес моего сайта и порт 80ый - а на хосет index.php который читает что я набрал в строке своего брайзера а потом передает мне этот сайт а если и воозможно то сжимает его
    Уточню зачем мне это надо - хочу сделать из этого хостинга прокси сервер - своего рода тунель в Интернет тока за меньшие деньги... потому как у нас в трафик различается на внутренный и внешний - разница в цене порядка 10 раз... поэтому я хочу использовать предоставляемый мне бесплатный хостинг как тунель - прокси сервер - по внутреннему трафику
     
  5. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
  6. Mavir

    Mavir Guest

    Немного поэкспериментировал и как не смешно, вот простенький прокси
    PHP:
    1. <?
    2.   //phpinfo();
    3.   //exit;
    4.  
    5.   $ch = curl_init($_SERVER["REQUEST_URI"]);
    6.   curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
    7.   curl_exec ($ch);
    8. ?>
    Конечно, нужны доработки. Этот пример работает только по методу GET, не передает куки, данные POST... Если непонятно что передается скрипту вызывай phpinfo(), я оттуда брал все данные.

    Еще нужно прописать в .htaccess такие строки
    Код (Text):
    1. RewriteEngine on
    2. RewriteCond $1 !^(index\.php)
    3. RewriteRule ^(.*)$ /index.php?$1 [L]
     
  7. svk

    svk Активный пользователь

    С нами с:
    7 авг 2006
    Сообщения:
    506
    Симпатии:
    0
    Адрес:
    NetByNet
    он биндит порт... любой маломальски грамотный сисадмин сразу просечет левый открытый порт на сервере
     
  8. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    не факт
     
  9. svk

    svk Активный пользователь

    С нами с:
    7 авг 2006
    Сообщения:
    506
    Симпатии:
    0
    Адрес:
    NetByNet
    неидиотов полно
     
  10. Davil

    Davil Guest

    И что он за это сделает? А то мож я себе бесплатный инет устрою! :)
     
  11. enshtein

    enshtein Активный пользователь

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    Твой примерчик непошел...
    Обьясню что я сделал, просто кинул на хост два файла index.php (CHMOD 777) и .htaccess по твоему примеру, затем прописал url своего сайта и порт 80 в настройках прокси браузера и после того как я набрал в строке адрес http://yandex.ru вылезла страница хостинга "Возможно тут должен быть другой сайт, обратитесь в службу поддержки ХХХ"... Короче никуды непускает - или че??? в чем проблема?? может я что-то не то делаю... или в настройках прокси браузера надо писать конкретный ip-адрес хоста (хотя врят ли)...
     
  12. Mavir

    Mavir Guest

    Без понятия как должно быть. Я писал пример на основе данных phpinfo() на localhost. У меня работало. Как надо делать, чтобы на работало на хостинге, не знаю.

    Скорее всего на хостинге и не будет работать, потому что на одном IP сидит много хостов. Поэтому прописав в настройках адрес прокси, ты обращаешься не к своему хосту, а к главной странице этого сервера.
     
  13. svk

    svk Активный пользователь

    С нами с:
    7 авг 2006
    Сообщения:
    506
    Симпатии:
    0
    Адрес:
    NetByNet
    покупай у хостера отденльный ип
     
  14. Mavir

    Mavir Guest

    А стоит ли овчинка выделки? Что будет дороже
    1. Оплата хоста + внутри сетевой траффик (может еще + отдельный IP)
    2. Обычная плата за траффик
     
  15. svk

    svk Активный пользователь

    С нами с:
    7 авг 2006
    Сообщения:
    506
    Симпатии:
    0
    Адрес:
    NetByNet
    у нормальных провов он бесплатный

    и вообще, что за изврат, господа? я могу поспорить что от DNS-туннелинга ваш пров не застрахован
     
  16. Davil

    Davil Guest

    А по DNS никак?
     
  17. Mavir

    Mavir Guest

    В смысле?
     
  18. Vlad

    Vlad Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Питер
    а что обязательно в качестве прокси ip указывать? :)
     
  19. Mavir

    Mavir Guest

    С сервером соединяются по IP адресу компьютера. И если вводить его имя, то все равно получают IP и потом соединяются.
    Я не знаю протокола прокси. Если там там передается в запросе имя хоста, как в http запросе, то можно обращаться к прокси по имени.

    Например, по http броузер соединяется с сервером по IP, а уже в запросе передает название хоста. Если в строке ввести просто IP, то выдаст страницу по умолчанию или, как у меня на localhost, когда ввожу 127.0.0.1, виртуальный хост записаный первым в httpd.conf
     
  20. Davil

    Davil Guest

    Mavir
    Твой DNS+port.
    Например:
    www.Mavir.ru:8009
     
  21. metadon

    metadon Активный пользователь

    С нами с:
    6 фев 2006
    Сообщения:
    779
    Симпатии:
    0
  22. mistik

    mistik Активный пользователь

    С нами с:
    5 ноя 2006
    Сообщения:
    7
    Симпатии:
    0
    proxy-0.4 у мну не заработало.
    Выскочило
    Код (Text):
    1. CGI Error
    2. The specified CGI application misbehaved by not returning a complete set of HTTP headers.
    после того, как ввел в поле строку http://ya.ru/
     
  23. fl0yd

    fl0yd Активный пользователь

    С нами с:
    23 ноя 2006
    Сообщения:
    1
    Симпатии:
    0