- Любовные романы
- Фантастика и фэнтези
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Linux - Алексей Стахнов
Шрифт:
Интервал:
Закладка:
Сначала необходимо определить ACL (Access Control List, список управления доступом). Сначала закомментируем все строчки в файле Squid.conf, начинающиеся на aci. Затем пишем свои правила. К примеру:
• acl users proxy_auth vasya tolik petya nina – этой строчкой мы указываем proxy-серверу правило, по которому разрешаем пускать вышеперечисленных пользователей с использованием авторизующей программы через Squid;
• acl BANNER url_regex banner reklama linkexch banpics us.yimg.com [./]ad[s]? [./] – это правило определяет адреса, содержащие рекламу. Интересна для тех, кто хочет отказаться от получения разнообразных баннеров. Позволяет экономить сетевой трафик;
• http_access deny [users – эта строка запрещает доступ всем пользователям, кроме тех, которые перечислены в группе users;
• http_access deny banner – запрещаем доступ к URL, удовлетворяющим правилу banner (убираем рекламу);
• proxy_auth_realm Vasy Pupkina proxy-caching web server – строка, которая выводится в окно с логином/паролем;
• cache_mgr [email protected] – если у клиента возникает проблема – выводится HTML-страница с сообщением и адресом электронной почты администратора, в нашем случае [email protected];
• cache_effective_user nobody – с правами какого пользователя выполняется proxy-сервер;
• cache_effective_group nogroup – с правами какой группы выполняется proxy-сервер;
• client_db on – параметр разрешает собирать статистику по клиентам.
Поскольку стандартной настройки в такой сфере, как использование канала, места на винчестере, оперативной памяти просто не может быть, более тонкие настройки и ограничения вы должны обдумать и настроить сами.
Создание иерархии proxy-серверовЧтобы разместить кэш в иерархии, нужно воспользоваться директивой cache_host.
Приведенной ниже частью конфигурационного файла Squid.conf сервер pupkin.ru сконфигурирован так, что его кэш получает данные с одного родительского и с двух братских кэшей:cache_host petya.com parent 3128 3130
cache_host monya.ru sibling 3128 3130
cache_host gesha.ru sibling 3128 3130Директива cache_host_domain позволяет задавать для каждого определенного домена или группы доменов как братский, так и родительский кэш. Приведенный ниже пример показывает что kesha.ru получает данные из доменов. ru, au, aq, fj, nz, agesha.ru – из доменов. uk, de, fr, no, se, it.
cache_host kesha.ru parent 3128 3130
cache_host gesha.ru parent 3128 3130
cache_host uc.cache.nlanr.net sibling 3128 3130
cache_host bo.cache.nlanr.net sibling 3128 3130
cache_host_domain kesha.ru.ru.au.aq.fj.nz
cache_host_domain gesha.ru.uk.de.fr.no.se.it
Transparent proxyTransparent proxy – это таким образом настроенный proxy-сервер, что его использование прозрачно для пользователей. То есть пользователям не придется что либо настраивать в своих браузерах. Для этого необходимо решить следующие задачи:
1. Добиться чтобы все HTTP-запросы пользователей попали на компьютер, где работает ваш HTTP proxy-сервер.
2. Добиться чтобы эти запросы попадали собственно к proxy-серверу.
3. Добиться того чтобы ваш proxy-сервер их правильно обработал.
Выполнить первый пункт можно разными способами. Самый простой путь – поставить proxy-сервер и маршрутизатор на один сервер, через который проходит весь трафик.
Чтобы HTTP-запросы пользователей попали к HTTP proxy-серверу, необходимо таким образом настроить маршрутизатор (брандмауэр), чтобы транзитные пакеты, предназначенные для порта 80, попадали на вход proxy-сервера. Если proxy-сервер должным образом настроен, он правильно обработает полученные запросы. В Squid.conf добавляются следующие строчки:httpd_accel www.your.domain 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Ключи запуска Squid
Помимо конфигурационного файла, поведением программы Squid можно управлять с помощью ключей командной сторки. Далее приведены некоторые из них с поянениями:
• -а – указывает порт для входных HTTP-запросов;
• -d – выводит отладочную информацию на устройство stderr (обычно – текущая консоль);
• -f имя_файла_конфигурации – позволяет использовать альтернативный конфигурационный файл (удобно для отладки сервера);
• -h – выводит краткую справку по программе Squid;
• -k – этот ключ позволяет посылать Squid следующие управляющие сигналы:
– reconfigure – посылка сигнала hup. Используется для прочтения измененного конфигурационного файла;
– rotate – позволяет произвести ротацию журналов (сигнал usri);
– shutdown – прервать выполнение программы с корректным завершением (сигнал term);
– interrupt – немедленно завершить работу программы (сигнал шт);
– kin – «убить» приложение (kill);
– debug – начать/закончить полную трассировку (сигнал USR2);
– check – проверка (сигнал zero);
• -u – задает порт для входных 1СР-запросов;
• -v – выводит версию программы;
• -z – создает дисковый кэш при первом запуске (Важно!);
• -D – предписывает не производить DNS-тест при запуске;
• -F – восстанавливает после сбоя не в фоновом режиме (ускорение восстановления);
• -N – предписывает не становиться фоновым процессом;
• -V – включает поддержку виртуальных хостов для режима акселерации;
• -X – включает отладку при разборе конфигурационного файла;
• -Y – включает быстрое восстановление после сбоев.
Первый раз Squid нужно запускать с ключом -z:Squid -z
При этом программа создаст дерево кэшей. Этой же командой следует воспользоваться с том случае, если вам необходимо очистить кэш proxy-сервера. Для закрыатия текущих файлов журналов и создания новых (чистых) файлов используется команда:
Squid -k rotate
Файлы журналов Squid
Файл access.logФайл access.log используется для хранения информации о всех подключениях к proxy-серверу. Запись добовляется, когда клиент закрывает соединение. Для сервера с большим трафиком файл может за день увеличиться на десятки мегабайт. К примеру, при трафике в 10 тыс. запросов в сутки объем журнала увеличивается примерно на 2 Мбайт.
Еденицей информации о соединении является строка. Строка состоит из десяти полей. Ниже приведено описание полей с пояснениями:
• timestamp – время в UNIX-формате (время с 1 января 1970 года в миллисекундах);
• elapsed – затраченное время в миллисекундах;
• client IP address – IP-адрес клиента, пославшего запрос;
• type/HTTP – результат запроса, где type:
– TCP_HIT – верная копия объекта нашлась в кэше;
– TCP_MISS – запрашиваемый объект не был в кэше;
– TCP_EXPIRED – объект есть в кэше, но он устарел;
– ТСP_CLIENT_REFRESH – клиент запросил принудительное обновление объекта;
– TCP_REFRESH_HIT – объект в кэше был старым, был сделан запрос к источнику и источник ответил "объект не изменился";
– TCP_REFRESH_MISS – объект в кэше был старым, был сделан запрос к источнику и тот вернул обновленное содержание;
– TCP_IMS_HIT – клиент выдал запрос, объект оказался в кэше и свежим;
– TCP_IMS_MISS – клиент выдал запрос для просроченного объекта;
– ТСP_REF_FAIL_HIT – объект в кэше устарел но запросить новую копию не удалось;
– TCP_SWAPFAIL – объект должен находиться в кэше, но его не смогли извлечь;
– TCP_DENIED – отказ;
• size – количество байтов, переданных клиенту;
• method – метод передачи информации; GET, HEAD, POST для ТСР-запросов или ICP_QUERY для UDP-запросов;
• URL – адрес запрашиваемого объекта;
• ident "-", если недоступен;
• hierarhy data/Hostname – результат запросов к братским/родительским кэшам:
– PARENT_HIT – UDP-запрос к родительскому кэшу (parent) вернулся с подтверждением;
– PARENT_UDP_HIT_OBJECT – объект оказался в родительском кэше parent и поместился в UDP-ответе;
– DIRECT – объект был запрошен с оригинального сервера;
• тип содержимого (MIME-тип/подтип).
Файл store.logФайл store.log используется для хранения информации о всех кэшируемых объектах proxy-сервера. Единицей информации о соединении является строка. Строка состоит из одиннадцати полей. Ниже приведены поля с пояснениями:
• Time – время в UNIX-формате (время с 1 января 1970 года в миллисекундах);
• action – действие:
– RELEASE – удален из кэша;
– SWAPOUT – сохранен на диск;
– SWAPIN – был на диске, загружен в память;
• HTTP reply code – код ответа HTTP-сервера;
• HTTP Date – дата создания объекта;
• HTTP Last-Modified – время последней модификации объекта;
• HTTP Expires – срок жизни объекта;
• HTTP content-Type – тип объекта;
• HTTP Content-Length – размер объекта;
• реально полученное число байтов. В том случае, если не совпадает с предыдущим полем, объект не сохраняется;
• HTTP metod – метод передачи информации (GET, HEAD, POST).
• Access key – ключ доступа (обычно URL).
Файл useragent.logПредназначен для хранения информации о том, с какими пользовательскими агентами (Web-браузерами) работают клиенты. Малоинтересен в практическом плане. Разве что для получения статистики по частоте использования тех или иных Web-браузеров.
Нестандартные применения
Функциональность программы Squid не ограничивается только функцией proxy-сервера. У нее есть достаточно много других интересных применений. В этом разделе мы рассмотрим только некоторые из них.
Борьба с баннерамиНаверняка вам встречались Web-страницы, на которых нужной информации было от силы на килобайт, а рекламных баннеров (зачастую анимированных) – пять-шесть. Хорошо когда канал большой и бесплатный. Когда же пользуешься обычным коммутируемым соединением да еще платишь за соединение из своего кармана, каждый килобайт начинаешь считать. В этом случае можно настроить локальный сервер Squid таким образом, чтобы не происходила закачка ненужных баннеров. Этого можно добиться несколькими способами.