|
|
|
#1
|
||||
|
||||
|
Все заметили, ч тов новой версии изменился алгоритм работы чекера.
Хочется узнать подробности как и тчо работает, что бы грамотно настроить скрипт и не задавать тупых вопросов саппорту. |
|
#2
|
||||
|
||||
|
Уф... надо один раз написать, но подробно. Сразу оговорюсь: все, что тут написано, касается только чекера 5 ветки (версий 5.х).
Про нововведения Эта версия была переписана заново, с новым подходом, с полноценным использованием техник объектно-ориентированного программирования (для чего требуется, кстати, 5 ПХП), что позволило сделать более надежную систему, а также упростило написание патчей и обновлений за счет четкой и разложенной "по полочкам" структуры проекта. Использование библиотек Smarty, PEAR::QuickForm, Prototype.js позволили сделать достаточно функциональный интерфейс админки, который при этом является простым и интуитивно понятным (по крайней мере, к этому стремился :-) Каждое действие чекера инкапсулировано (скрыто) в свой объект и не повторяется в коде, поэтому раздел "Утилиты" использует тот же код что и автоматический граббер/чекер и поэтому получает такие же результаты. Оптимизированы запросы к базе данных. Все служебные запросы выполняются до старта основного цикла. Там где возможно, работа с БД идет порциями (т.е. по несколько записей в запросе), что ускоряет процесс. Изменения записей выполняются только по PRIMARY ключу, что тоже есть гут. И основное нововведение в этой версии - "мультизапросы". Это своеобразная замена пингу. В прошлых версиях в каждом процессе прокси проверялись последовательно, а для сокращения времени ожидания ответа использовался пинг перед запросом. Сейчас сразу несколько прокси проверяется за один запрос, при этом нагрузка на сервер минимальна (т.к. сервер ничего не выполняет, а просто ждет ответа от прокси). Это позволяет уменьшить количество процессов (разгрузить сервер), при этом, не теряя в скорости. Все вышесказанное касается и граббера тоже. Про автоматический запуск Файл "cron.php" запускается каждую минуту. Он анализирует состояние БД, выполняет разные служебные действия (например, сброс граббера, если все прокси прочеканы), а также запускает нужное количество процессов. Кстати, процессы контролируются теперь при помощи БД, так что вы можете видеть PID, время работы процесса, текущее действие, а также посмотреть лог-файл каждого процесса. Вначале запускается граббер (поиск прокси серверов). Он обрабатывает все добавленные адреса и копирует найденные прокси себе в базу. В базе нет дублей адресов. Затем запускается чекер, который проверяет прокси на работоспособность, для чего через каждый прокси делается запрос на получение специальной тестовой страницы. Анализируя загруженную страницу, чекер определяет уровень анонимности и другие параметры прокси. Если тестовая страница не загрузилась — прокси считается нерабочим и сразу удаляется из базы. Когда все прокси проверены, снова запускается граббер и т.д. Также из планировщика заданий запускаются модули перепроверки и экспорта. Перепроверка (речек) заключается в постоянной проверке рабочих прокси серверов. Это нужно для поддержания актуальности базы. Если прокси не сработал, он через несколько секунд (5-10) перепроверяется ещё раз. Если снова не сработал, тогда прокси перемещается в базу непроверенных, где через некоторое время (зависит от сервера и размера базы) будет снова проверен стандартным чекером, который уже совсем удалит его из базы, если он не сработает. Т.о. каждый рабочий прокси проверяется 3 раза перед удалением. Экспорт по расписанию отправляет список прокси серверов с нужными параметрами всем получателям. Про проверку работы Граббинг страницы можно проверить, нажав на ссылку "тест" напротив нее. Будет показано количество найденных прокси, HTTP код ответа сервера, или код ошибки cURL. Каждый код ошибки можно посмотреть тут: curl.haxx.se/libcurl/c/libcurl-errors.html В отдельном поле будут показаны найденные прокси (на случай если нужно их куда-то скопировать). Можно также просмотреть HTML код загруженной страницы. Вот простой порядок действий для добавления качественных адресов в базу: 1. меню: Адреса -> Добавить 2. нажимаем "Добавить из Google" 3. вводим запрос, например "free proxy list" 4. добавились ссылки из гугла по этому запросу 5. жмем "Добавить" 6. повторяем пункты 1-5, только с разными запросами, т.о. наберем достаточный список прокси листов. Теперь надо отбросить страницы, на которых нет проксей: 7. меню: Процессы -> Список процессов. Периодически обновляем страницу и следим за полоской граббера, когда сбросилась и потом полностью пробежала – значит, граббер обработал все адреса 8. меню: Адреса -> Просмотр 9. там есть форма, где написано "Удалить, если найдено меньше чем...", ставим "10" 10. жмем "Удалить", потом "OK". Т.о. остались списки, с которых грабятся проксики (полезно повторять пункты 7-10 каждый месяц) Если нажать ссылку на прокси в меню Прокси, он будет тут же проверен и показаны его параметры, а так же текст тестовой страницы, который он возвращает. Если прокси передает IP сервера, он будет подсвечен красным. Проверить экспорт по расписанию можно, если нажать «тест» напротив получателя. Про кодовое слово Кодовое слово используется опционально и только при получении списка прокси по URL. Оно требуется для того, чтобы ваш список прокси могли получить только вы и ваш софт. Это слово передается в URL. Так что если у вас не паблик сервис по раздаче проксей, рекомендуется установить кодовое слово. Про настройки Автозапуск по крону – если снять птичку, тогда из крона не будут запускаться процессы (остановка системы). Прервать уже запущенные процессы можно в меню Процессы -> Список процессов. Количество процессов – сколько процессов будет работать одновременно (для граббера, чекера и перепроверки можно выставить разные значения). Мультизапрос – количество прокси (или адресов, для граббера), которое будет обрабатываться за один запрос. Для снижения нагрузки на сервер можно ставить больше размер мультизапроса, но меньше процессов (но, возможно, при очень больших значениях мультизапроса может ухудшиться качество проверки). Таймаут подключения – время ожидания подключения к серверу. Если за это время нет ответа от сервера, возвращается ошибка. Таймаут запроса – все время запроса, т.е. время подключения + время передачи данных. Если даже есть ответ от сервера, но страница, к примеру, большая и не успевает загрузиться за это время, возвращается ошибка. Заменять символьные адреса на IP – если включено, то при граббинге для каждого прокси, представленного не в виде IP, а в виде домена (например, someproxy.net:8080), будет сделан дополнительный запрос чтобы определить его IP (функция gethostbyname()). Тестовый URL – URL файла тестовой страницы (check.php). Возможно, скорость проверки прокси возрастет, если переместить эту страницу на сервер с более быстрым каналом. Параметры анонимности – добавьте все возможные IP адреса вашего сервера, где установлен Proxy checker. Также рекомендуется добавить локальный IP (127.0.0.1) Если этого не сделать, уровень анонимности прокси будет определяться неправильно! При автоматической настройке добавляется только текущий IP. Узнать диапазон IP адресов можно у администратора вашего сервера. Определять страну – для каждого прокси делается дополнительный запрос к локальной БД для определения страны, где расположен прокси сервер. Если для вас не важно, из каких стран прокси, отключите эту опцию – это слегка разгрузит MySQL. Только анонимные прокси - поставьте эту галку, если вам важны только анонимные и элитные прокси. Тогда в базе рабочих не будут сохраняться прозрачные прокси сервера. Частота перепроверки – частота перепроверки рабочих прокси. Реальная частота может быть больше этого значения, если речекер не успевает обработать все рабочие прокси за это время. Узнать время обхода по рабочим прокси можно в меню Процессы -> Список процессов. Последний раз редактировалось admin, 23.09.2007 в 18:43. |