Сегодня будем ускорять интернет. Никаких чудо программ увеличивающих вашу скорость на 300% не будет. Экономия траффика составляет около 30%. Мои тесты показали что в среднем интернет ускорился в 1.5 - 2 раза. Кстате ставя прокси сервер мы снизим нагрузку на ННМ, что увеличит скорость загрузки сайта. Вся схема работает на давно опробованных (и бесплатных) программах используемых в IT индустрии. В основе лежит прокси сервер (или веб кэш) Squid , а дополняет его ДНС сервер в режиме кэширования (можно и без ДНС обойтись - в этот раз так и сделаем). Squid (проксик наш) сделан сообществом Open Source разработчиков (изначально для *никc систем) и соответствено полностью бесплатен. Скорее всего вы уже сталкивались с тем что на работе не можете скачать что-то и вместо варезного сайта видите фотку довольного админа :) Ну дак вот это и достигаеться тем же прокси сервером. Дак за счёт чего достигаеться ускорение интернета? А за счёт того что вы ходите в интернет через прокси сервер, прокси скачивает странчку сохраняет её на жёсткий дископеративную_память и отдает уже вам. В следующий раз вы идёте на эту страничку она вам отдаёться с жесткого диска, если конечно она не устарела (особо часто используемые объекты вообще храняться в оперативной памяти). Интернет браузеры имеют подобный механизм но ни в какое сравнение с Squid'ом не лезут (привет защитникам Оперы :D) Тем более если у вас есть локальная сеть, прокси сервер просто необходимость - пару человек с утра слазили на ннм.ру и большинство ннм сохранилось локально на прокси следующие кто полезет на ннм с локалки, получат сайт очень быстро с проксика. Это конечно примитивное объяснение, и у многих могут появиться вопросы о том что будут проблемы с сайтами итд - поверьте технология отточена и всё работает отлично. Конечно у прокси есть и дополнительные приемущества, среди них: - возможность фильтрации сайтов, типов фаилов, да чего и когда хотите. - возможность резки рекламы (дополнительное ускорение) - возможность фильтрации информации передаваемой браузером об операционке, версии браузера и.т.д - возможность ограничения скорости скачки (чтобы какае-нибудь п@дла не вздумала Fedora Core в 10 потоков качать а остальные курили в сторонке) - возможность просматривать логи (кто, куда, когда ходил) - всё это можно ограничить по времени, пользователю, скорости, размеру итд Установить проксик в самой базовой конфигурации - дело получаса (если эту статью читать ;)). Тем более так как большинство пользователей сидят в Windows проксик будем ставить на Windows (кстате на Линукс*никс этот проксик можно поставить с тем же успехом - это вам не MS ISA) Насчёт ресурсов - сколько дадите - столько и будет кушать. Комфортно работать для одной рабочей станции нужно где-то 8 МБ оперативки, процессор не более 1-2% загрузки при усиленном хождении по интернету. И так поехали! Заходим сюда выбираем версию 2.6 - нажимаем Download. скачать (1.6 Мб) Это мы скачали Windows порт Squid'a. Теперь разархивируем в C:Squid Переименоввываем C:Squidetcsquid.conf.default в squid.conf (то есть убрали .default с конца) Переименоввываем C:Squidetcmime.conf.default в mime.conf После идём его конфигурировать - открываем C:Squidetcsquid.conf (лучше редактировать в Notepad++ - привыкайте к культуре :D) 1.) ищем директиву "cache_dir" (линия 998 (теперь поняли почему нужен Notepad++ :) ? )) убирает значок # спереди (называеться разкоментировать, то что стоит после знака # программой игнорируеться и служит для того чтобы люди заметки там писали) получаеться следующее: "cache_dir ufs c:/squid/var/cache 100 16 256" - вот первая цифра (100) после пути указывает сколько мегабайт под кэш отдать на жёстком диске, по умолчанию 100 Мегабайт, мне например не жалко - дома стоит 256 (на работе 2 гига). Заметьте в пути используються обратные слэши - так и должно быть. 2.) далее настраиваем чтобы кто попало не пользовался нашим проксиком идём на линию 2387 и там добавляем "acl local_net src 192.168.0.0/24" (вместо "192.168.0.0/24" поставьте свою сетку/маску если хотите разрешить доступ только со всоего компа - поставьте "127.0.0.1/255.255.255.255") если хотите разрешить только 2 (3, 4, 10) адресса то поставте "acl local_net src 192.168.0.101/255.255.255.255 192.168.0.102/255.255.255.255" теперь с 192.168.0.101 и 192.168.0.102 будет разрешен доступ к проски серверу этот параметр задаёт с каких адрессов возможно будет использование проски сервера. теперь идём на линию 2526 (заметьте мы уже добавили одну линию, так что все сместилось) и вставляем туда "http_access allow local_net" 3.) теперь идём на линию 2833 и добавляем "visible_hostname Proxy4NNM" и сохраняем фаил. всё настроили! (по самому простому конечно - но начинать нужно с простого) открываем командную строку (Start-->Run-->CMD-->'ok' | Пуск-->Выполнить-->cmd-->'ok') переходим в каталог С:Squidsbin (в командной строке пишем "С:" потом "CD " потом "CD Squid" потом "cd sbin" - естественно без кавычек и каждый раз нажимая Enter ) должно появиться "C:Squidsbin", далее печатаем "squid.exe -z" и жмем Enter. Через секунду другую проксик завершит создавать директории для кэша и завершиться. проверяем в той же командной строке просто пишем "squid.exe", идём в браузер Инструменты-->Настройки-->Основные-->Параметры соединение...--> Настройка прокси вручную-->пишем свой ip адресс (127.0.0.1 если поставили 127... в local_net, 192.168.x.x если 192.168.0.0) - порт 3128 Если у вас стоит Internet Explorer - то идём на http://www.mozilla.com/firefox/ и скачиваем FireFox. (4.9 МБ) дальше идём на ннм.ру - если сайт загрузился - всё работает. если всё работает выделяем окошко с командной строкой (где мы запустили squid.exe) и нажимаем "CTRL-C" сквид должен выйти. далее мы установим сквид как системный сервис чтоб не запускать его вручную каждый раз (нужны права администратора на локальной машине) в командной строке пишем "squid.exe -i", далее идём в Start-->Run-->service.msc-->'ok' | Пуск-->Выполнить-->service.msc-->'ok' находим Squid, нажимаем 2 раза смотрим что "Startup type" (непомню как в русской версии, что-то типа "Тип Запуска") был "Automatic" и нажимаем "Start" или из командной строки пишем "net start Squid" ===========================ВСЁ!!!======================== прокси работает - ускорение почувствуете не сразу а как кэш начнет заполняться (через день если нормально используете) и так, на моем канале в 6Мбитс без прокси - NNM на internet explorere загрузился за 19 секунд на FireFox'e за 21 секунды на Opere за 14 секунд через прокси который мы поставили - NNM (я прогнал nnm.ru несколько раз чтоб он в кэш залез) на internet explorere загрузился за 15 секунд на FireFox'e за 8 секунд на Opere за 7 секунд через прокси который у меня дополнительно настроен на отдельном компе (512MБ кэш, 64 оперативы сквиду) - NNM на internet explorere загрузился за 7 секунд на FireFox'e за 6 секунд на Opere за 5 секунды Теперь можно поднастроить прокси, позапрещать сайты и сгенерировать отчеты если вам интересно или просто хочеться выжать побольше из прокси - его нужно поднастройть. если нам нужно запретить некоторые сайты, рекламу, расширения и конечно же сделать "белый" список на который ограничения не влияют. всё делаеться через squid.conf фаил. открываем его и добавляем после "acl Safe_ports port 777 # multiling http" строка 2399: acl block_sites url_regex "C:/squid/etc/block_sites.acl" acl block_extensions url_regex "C:/squid/etc/block_extensions.acl" acl block_ads url_regex "C:/squid/etc/block_ads.acl" acl whitelist url_regex "C:/squid/etc/whitelist.acl" после добавляем следующие перед "http_access allow local_net" (строка 2530): http_access allow whitelist http_access deny block_sites deny_info http://www.nnm.ru block_sites http_access deny block_extensions http_access deny block_ads # deny_info http://192.168.0.100/empty.gif block_ads теперь в директории C:Squidetc создаем фаилы block_sites.acl, block_extensions.acl, block_ads.acl и whitelist.acl в фаил block_sites прописываем сайты которые хотим запретить (директива "deny_info http://www.nnm.ru block_sites" будет показывать сайт ннм вместо сайтов в фаиле block_sites.acl) вместо рекламы можете ставить пустой прозрачный гиф, только найдите его :) в инете (у меня он на локальком веб серваке лежит) для этого раскоментируйте последнюю строчку и вставьте свой адресс. А вообще AdBlock вам в помощь :) в фаил whitelest.acl пишем сайты на которые никакие запреты не влияют (например запрет рекламы) в фаил block_extensions.acl пишем какие расширения запретить для скачки (.exe например) в фаил block_ads.acl пишем шаблоны адрессов для рекламы (http://ads. например) заметьте что в этих фаилах используються регулярные выражения а не просто строки. например вместо точки нужно ставит . Если не знаете что это такое посмотрите примеры в фаилах (в конце я выложу архив со всем готовым) после этого в командной строке (С:Squidsbin) пишем "squid.exe -k check -n SquidNT" если есть ошибки нам скажут - исправляем, потом "squid.exe -k reconfigure -n SquidNT" и сквид перечитает фаилы конфигурации. итак: фаил журнала куда сквид пишет каждый запрос от клиента находиться в C:Squidvarlogs и называеться access.log откройте и посмотрите что он из себя представляет. вот фрагмент (2 строчки) 1146809425.078 47 192.168.0.112 TCP_HIT/200 11440 GET http://www.nnm.ru/nnm.css - NONE/- text/css 1146809425.656 453 192.168.0.112 TCP_MISS/200 665 GET http://www.nnm.ru/script/script.php - DIRECT/88.212.200.13 text/html что то типа такого будет там. 2ое число означает сколько потребовалось на загрузку объекта в миллисекундах. потом идёт йп адресс клиента. потом идёт статус кэша, HIT - значит объект был на прокси сервере, MISS - значит его пришлось грузить с интернета (стоит оговориться что некоторые страницы не кэшируються чтобы правильно отображался сайт). потом идёт код от веб сервера. после идёт размер объекта. далее адресс объекта и прочая лабуда которая нам сейчас не нужна. (здесь же может быть имя пользователя если настроена авторзация) Нам главной понять где время на загрузку а где размер объекта. этих знаний должно хватить для анализа как загружаеться сайт и что его тормозит. для удобства я использую утилиту tail.exe (http://unxutils.sourceforge.net/) (я положил её в C:Squidsbin) вообщем :) в командной строке пишем "tail.exe -f C:Squidvarlogsaccess.log" и вы в реальном времени сможете наблюдать как работает прокси. теперь заходим на сайт и смотрим что замедляет сайт. к примеру на ннм в конце можно увидеть такое 1146813020.730 4266 192.168.0.112 TCP_MISS/503 1494 GET http://213.248.54.143/901146812983.gif - DIRECT/213.248.54.143 text/html 1146813023.454 7460 192.168.0.112 TCP_MISS/200 1471 GET http://u975.32.spylog.com/cnt? - DIRECT/194.67.35.198 image/gif тоесть счётчики грузяться фиг знает сколько (~11сек.) - будем их убивать! в фаил block_ads.acl добавляем выражения ^http://counter. top.list.ru spylog.com говорим сквиду перечитать конфигурацию (squid.exe -k reconfigure -n Squid) заходим на сайт и видим в access.log: 1146813536.372 0 192.168.0.112 TCP_DENIED/403 1431 GET http://u975.32.spylog.com/cnt? - NONE/- text/html 1146813536.382 10 192.168.0.112 TCP_DENIED/403 1441 GET http://counter.yadro.ru/hit;NoNaMe? - NONE/- text/html 1146813536.382 0 192.168.0.112 TCP_DENIED/403 1425 GET http://top.list.ru/counter? - NONE/- text/html что эти нехорошие объекты были посланы гулять. то что мы счётчики порезали скажеться на статистике сайта - так что если режете счётчики "оберегайте" хорошие сайты. вообщем вроде немного разобрались с проксиком, скоростью, рекламой и прочей нечестью... :) если хотите можете себе html отчёты генерировать подробные, сколько трафика, куда когда зачем. Делаеться это с помощью Webalayzer'a (http://www.stonesteps.ca/projects/webalizer/) качать сдесь (http://www.stonesteps.ca/downloads/) в моём архиве уже есть в папке Webalizer чтоб сгенерировать отчёт открываем командную строку (C:SquidWebalizer) webalizer.exe -c squid.conf (для тех кто скачает созданный мной архив) или webalyzer.exe -F Squid -o C:Squidstatistics C:Squidvarlogsaccess.log копируем webalyzer.css в папку statistics и читаем index.html всё может выглядеть сложно но на деле делаеться за полчаса. для ленивых я выложил архив со всем готовым СКАЧАТЬ (только нужно поменять адресс local_net в squid.conf если у вас не 192.168.0.0 или 192.168.1.0 сеть, хотя и так будет работать если соединяться на 127.0.0.1) я описал только малую часть возможностей, если интересно читайте тут и тут
|