Social Icons

.

воскресенье, 20 мая 2012 г.

ES Proxy


 Home

Примеры файлов настроек сервера 

Описание ini-файла

Основные настройки работы сервера ESPS размещаются в файле esps40.ini, расположенном в каталоге Windows. При первом своем запуске сервер ESPS создает заготовку этого файла, которую администратор может затем изменять в соответствии со своими нуждами. Необходимо отметить, что установка сервера ESPS не приводит сразу к его запуску, поэтому для получения указанной заготовки конфигурационного файла администратору следует первый раз самому принудительно запустить сервер ESPS через сервис-менеджер операционной системы. При внесении изменений в ini-файл необходимо всякий раз перезапускать сервер ESPS для того, чтобы изменения вошли в силу.

Секция SERVER

Эта секция описывает наиболее общие параметры работы ESPS.
  • Master - имя или IP-адрес ведущего прокси-сервера (может быть пустым, если сервер ESPS должен работать самостоятельно)
  • Port - номер порта (целое положительное число), на котором сервер ESPS должен принимать вызовы от клиентов
  • Threads - количество рабочих потоков сервера (целое положительное число)
  • Idle Thread Time - время холостого хода рабочих потоков (в милисекундах)

Секция USERS

Эта секция описывает правила работы сервера ESPS с клиентами. Она имеет следующие параметры:
  • Count - количество клиентов сервера
  • Groups File - полное имя файла описания клиентов
  • Wait Free Thread - время (в секундах) ожидания освобождения потоков для системы квотирования
  • Threads Limit - общее количество потоков внешнего канала, подлежащее распределению системой квотирования между активными клиентами сервера
  • Input Rate Limit - общий входной поток внешнего канала (в байтах в секунду), подлежащий распределению системой квотирования между активными клиентами сервера
  • Output Rate Limit - общий выходной поток внешнего канала (в байтах в секунду), подлежащий распределению системой квотирования между активными клиентами сервера
  • Report Disable URLs - флаг (0 или 1), указывающий на необходимость отсылки клиентам страницы с ошибкой при запросе ними URL, запрещенных в файле настройки клиентов; если флаг установлен в единицу, то страница с ошибкой отправляется, если в ноль - нет
  • Save Users File Name - полное имя файла для сохранения (при перезапусках) информации о клиентах

Секции описания лог-файлов

Имеется ряд секций для описания лог-файлов сервера ESPS:
  • Main Log - лог запуска и остановки сервера
  • Error Log - лог регистрации ошибок
  • Access Log - лог регистрации доступа клиентов по HTTP
Все они имеют одинаковую структуру:
  • Enable - (0 или 1) указывает на необходимость вести соответствующий лог
  • File Name - полное имя файла для ведения соответствующего лога

Секция CACHE

Эта секция описывает наиболее общие настройки системы файлового кэша сервера ESPS:
  • Enable - (1 или 0) разрешение или запрещение работы кэша
  • Path - полный путь к каталогу, где серверу ESPS следует хранить свой кэш
  • Rules File - полное имя файла, содержащего детальные настройки файлового кэша
  • Max Size - максимально допустимый размер кэша
  • Test Time - периодичность проверки (в секундах) сервером ESPS своего кэша

Секция WAIT SOCKET

Эта секция описывает настройки взаимодействия сервера ESPS с подсистемой сокетов операционной системы Windows:
  • Read Local - допустимый таймаут на чтение для локальных сокетов
  • Write Local - допустимый таймаут на запись для локальных сокетов
  • Read Remote - допустимый таймаут на чтение для удаленных сокетов
  • Write Remote - допустимый таймаут на запись для удаленных сокетов
  • Retry Connect - количество повторов при неудаче связаться с удаленным сокетом
  • Retry DNS - количество повторов при неудаче определения IP-адреса по имени удаленного сервера

Секция ROUTERS

Эта секция описывает параметры работы системы роутинга портов сервера ESPS:
  • Enable - (1 или 0) разрешение или запрет работы данной системы
  • List File Name - полное имя файла с детальными настройками этой системы

Описание файла настройки клиентов

Настройки клиентов ESPS содержатся в специальном построчном текстовом файле, имя которого должно быть указано в параметре «Groups File» секции «Users» файла esps40.ini. Клиенты сервера ESPS делятся на группы таким образом, чтобы все ее (группы) члены имели равные права. Деление клиентов на группы сделано для облегчения процесса конфигурирования, так как достаточно указать права один раз для всей группы, а не много раз, для каждого клиента в отдельности. Информация в рассматриваемом файле настройки клиентов располагается построчно, так что каждая строка содержит одну из перечисленных ниже команд настройки, а сами команды располагаются блоками, по группам клиентов. Каждая команда состоит из ряда полей, разделенных символом двоеточия, причем в первом поле всегда располагается код команды, а в последующих полях строки - параметры данной команды. Нераспознанные команды игнорируются, то есть рассматриваются как комментарии. Также игнорируются любые дополнительные поля в любой команде, так что администратор может свободно добавлять их в конце строки в качестве комментария. Пробелы и табуляции в полях игнорируются, так что их можно использовать как форматирующие символы для улучшения читаемости. Все команды, находящиеся в блоке той или иной группы, действуют только на клиентов данной группы, а на клиентов групп других блоков никакого влияния не оказывают. Блок группы клиентов начинается с команды «GROUP» и заканчивается на следующей команде «GROUP» или с окончанием самого файла настройки клиентов.

Команда GROUP

Эта команда создает группу и должна идти первой в блоке описания группы клиентов с равными правами. Все последующие строки будут описывать права этой группы клиентов, пока не встретится следующая команда GROUP (или же не закончится сам управляющий файл). Эта команда имеет один параметр - имя данной группы. Это имя будет отображаться на страницах статистики в соответствующих местах.

Команда USER

Эта команда сообщает серверу ESPS какие именно IP-адреса должны пользоваться правами текущей группы. Эта команда имеет два параметра - адрес сети и маску сети. Если маска сети указана как 255.255.255.255, то такая запись будет определять один компьютер, если используется другая маска, то команда определяет много компьютеров. Команда USER может подаваться в пределах блока группы много раз, таким образом в группе могут находиться несколько различных сетей (или отдельных хостов, если используется маска 255.255.255.255). Если команда USER подается несколько раз в пределах группы, то никакие ограничения на силу маски в разных экземплярах этой команды не налагаются: может быть подана одна команда с маской 255.255.255.255, определяющей одну машину, другая команда - с маской, определяющей 16 машин, третья - с маской, определяющей 256 машин и т.д. Отметим также, что адреса сетей, заданных этой командой в разных блоках групп могут пересекаться (но, конечно, не могут быть тождественными). В этом случае, сервер ESPS определяет принадлежность того или иного хоста к конкретной группе по силе маски (по ее наибольшей точности). Например, если в группе 1 задано
USER : 192.168.0.1 : 255.255.255.0 :
а в группе 2 задано
USER : 192.168.0.3 : 255.255.255.255 :
то машина 192.168.0.3 будет при этом отнесена по своим правам к группе 2, поскольку именно там ее адрес задан с наибольшей точностью.

Команда WEIGHT

Эта команда задает приоритет клиентов данной группы для процесса квотирования сессий и полосы внешнего канала. Ее параметр должен быть целым положительным числом. Чем больше это число, тем большее количество сессий будут иметь клиенты данной группы и тем большую скорость работы для них будет обеспечивать сервер ESPS.

Команда SHOW STATISTICS

Эта команда имеет один параметр, принимающий значение 0 или 1. Она определяет доступность для клиентов данной группы страниц статистики сервера ESPS: если параметр равен единице, то статистика доступна, если ноль - недоступна. (Речь, естественно, не идет о том, что для той группы, у которой указан ноль, статистика не собирается, а лишь о том, что такие клиенты не смогут ее увидеть.) Обычная настройка заключается в единице для группы администраторов, и нуле - для обычных клиентов.

Команда ENABLE ROUTE PORT

Эта команда дает разрешение данной группе воспользоваться роутингом портов. Она имеет один параметр - номер локального порта, с которым можно работать этой группе клиентов. Следует отметить, что сам роутинг должен быть создан отдельно - через соответствующий файл настройки роутинга портов, однако любой созданный там роутинг не становится сразу доступным любой группе. Его смогут использовать лишь те группы, в настройках которых имеется соответствующая команда ENABLE ROUTE PORT.

Команда ENABLE HTTPS PORT

Эта команда дает разрешение данной группе воспользоваться протоколом https. Она имеет один параметр - номер удаленного порта, с которым можно работать этой группе клиентов по методу CONNECT. Эту команду можно повторить для любой группы несколько раз, указав при этом последовательно все необходимые порты. Можно также в качестве номера порта использовать ноль, тогда это будет означать разрешение на все порты сразу. Следует отметить, что в дополнение к этому возможность работы https должна быть еще глобально разрешена для сервера ESPS в целом (параметр «Enable» секции «Connect» файла esps40.ini).

Команды ограничения трафика

Имеется ряд команд для ограничения дневного, недельного и месячного трафика, причем как на вход, так и на выход. Все эти команды имеют два параметра: первый содержит максимально допустимое значение того или иного трафика, а второй - код единицы измерения. Вот эти команды:
  • Day Input Limit - ограничение на вход за сутки;
  • Day Output Limit - ограничение на выход за сутки;
  • Week Input Limit - ограничение на вход за неделю;
  • Week Output Limit - ограничение на выход за неделю;
  • Month Input Limit - ограничение на вход за месяц;
  • Month Output Limit - ограничение на выход за месяц;
Коды единиц измерения:
  • B - байты
  • K - килобайты
  • M - мегабайты
  • G - гигабайты
Например, команда
Day Input Limit : 800 : K :
устанавливает любому клиенту данной группы дневной лимит входящего трафика в 800 килобайт.
(Под «входом» подразумевается передача данных из внешнего канала клиенту ESPS, а под «выходом» - передача информации от клиента ESPS во внешний канал.) Если в описании той или иной группы соответствующая команда ограничений отсутствует, то такой группе соответствующий трафик сервером ESPS ограничиваться не будет. В любой группе могут быть наложены одни лимиты, при полном отсутствии других. Могут быть также наложены все возможные лимиты одновременно, либо не наложены никакие вообще. Допускаются, таким образом, любые возможные комбинации.

Управления доступом к отдельным страницам

Имеется две команды для управления доступом:
  • Enable URL - разрешает доступ
  • Disable URL - запрещает доступ
Обе эти команды имеют один параметр - URL, доступом к которому необходимо управлять. В этом параметре можно использовать обобщающий символ звездочку, причем не один раз. Например, команда
Disable URL : *porno*.gif* :
предотвратит возможность получения gif-файлов с любого сервера, в имени которого содержится фрагмент «porno». Обе эти команды должны размещаться в пределах того или иного блока клиентов и оказывают действие только на клиентов того блока, в котором они размещены. Если в каком-то блоке используются как команды «Disable URL», так и команды «Enable URL», и некоторый URL подпадает под действие нескольких различных команд, то окончательное решение принимается по той команде, с которой у такого URL зафиксировано наибольшее количество совпадающих символов, не считая звездочек. Например, если написать
  • Disable URL : *123* :
  • Enable URL : *123*.gif* :
то нельзя будет получить страницу «http://123.ru/index.htm», но картинку «http://123.ru/35.gif» - можно. В заключение отметим, что любой URL, не подпадающий под действие ни одной из команд управления, считается доступным.

Команда DAY OFF

Эта команда объявляет для данной группы клиентов нерабочим днем (то есть таким, в течение которого обслуживание данных клиентов сервером ESPS не производится) тот день недели, код которого содержится в параметре этой команды. Коды дней:
  0 - воскресенье
  1 - понедельник
  2 - вторник
  3 - среда
  4 - четверг
  5 - пятница
  6 - суббота 
Например, команда
Day Off : 5 :
не позволит группе, в описании которой она находится, работать в течение всей пятницы. Разумеется, команда «Day Off» может повторяться в любом блоке не один раз, так чтобы запретить работу в любое необходимое количество дней недели.

Команда WORK TIME

Эта команда позволяет работать через ESPS данной группе клиентов в определенный день недели в определенном интервале времени. Первым параметром этой команды является код дня, к которому она относится (коды дней совпадают с описанными выше в команде «Day Off»), а два последующих параметра дают время от которого и до которого можно работать. Например, команда
Work Time : 5 : 12 : 18 :
позволит группе, в описании которой она находится, работать по пятницам с 12 до 18 часов. В описании любой группы эта команда может быть подана неоднократно (в том числе, и для одного дня), так чтобы разрешить работу в течение любого количества необходимых интервалов времени в любые нужные дни недели. При отсутствии этой команды для любого дня недели, работа в этот день допускается с 0 до 24 часов, то есть постоянно.

Команда MAX INPUT RATE

Эта команда определяет ограничение сверху скорости работы любого клиента данной группы на вход. Значение ограничения (в байтах в секунду) содержится в ее единственном параметре. Следует отметить, что система квотирования самостоятельно определяет полосу для каждого активного клиента, поэтому использовать эту команду без особой нужды настоятельно не рекомендуется. Смысл этой команды состоит в том, чтобы при малом количестве активных клиентов каждый из них не получал слишком широкую полосу внешнего канала (в абсолютных цифрах).

Команда MAX OUTPUT RATE

Эта команда определяет ограничение сверху скорости работы любого клиента данной группы на выход. Значение ограничения (в байтах в секунду) содержится в ее единственном параметре. Следует отметить, что система квотирования самостоятельно определяет полосу для каждого активного клиента, поэтому использовать эту команду без особой нужды настоятельно не рекомендуется. Смысл этой команды состоит в том, чтобы при малом количестве активных клиентов каждый из них не получал слишком широкую полосу внешнего канала (в абсолютных цифрах).

Описание файла настройки правил работы кэша

Настройки правил работы кэша ESPS содержатся в специальном построчном текстовом файле, имя которого должно быть указано в параметре «Rules File» секции «Cache» файла esps40.ini. Кэшируемые объекты делятся на группы таким образом, чтобы все URL такой группы имели одинаковые настройки. Деление объектов на группы сделано для облегчения процесса конфигурирования. В частном случае, если объект задан полностью, без использования символов обобщенной подстановки «*», группа может состоять из одного конкретного URL. Информация в рассматриваемом файле настройки правил работы кэша располагается построчно, так что каждая строка содержит одну из перечисленных ниже команд настройки, а сами команды располагаются блоками, по группам URL. Каждая команда состоит из ряда полей, разделенных символом двоеточия, причем в первом поле всегда располагается код команды, а в последующих полях строки - параметры данной команды. Нераспознанные команды игнорируются, то есть рассматриваются как комментарии. Также игнорируются любые дополнительные поля в любой команде, так что администратор может свободно добавлять их в конце строки в качестве комментария. Пробелы и табуляции в полях игнорируются, так что их можно использовать как форматирующие символы для улучшения читаемости. Все команды, находящиеся в блоке той или иной группы, действуют только на URL данной группы, а на URL групп других блоков никакого влияния не оказывают. Блок группы URL начинается с команды «URL» и заканчивается на следующей команде «URL» или с окончанием самого файла настройки правил работы кэша.

Команда URL

Эта команда определяет множество URL, для которых в ниже нее расположенных строках задаются правила кэширования. Она должна идти первой в блоке описания группы URL с равными правилами кэширования. Все последующие строки будут описывать правила кэширования этой группы URL, пока не встретится следующая команда URL (или же не закончится сам управляющий файл). Эта команда имеет один параметр - имя объекта, которое может содержать обобщающие символы в любом месте поля и в любом количестве. В качестве символа обобщения используется звездочка, ее наличие в любом месте поля заменяет любую последовательность символов любой длины. Следует отметить, что если некий конкретный URL подходит для нескольких команд URL управляющего файла, то будут использоваться правила той из них, с которой обнаружено совпадение наибольшего количества символов, отличных от звездочки. Например, есть две команды:
1) URL : *.gif :
2) URL : *images/*.gif :
Тогда URL «http://www.somename.ru/images/345.gif» будет обработан по правилу 2, а не 1.

Команды указания времени хранения объекта

В эту группу команд входят:
  • Min Save Time - задает минимальное время хранения
  • Default Save Time - задает начальное время хранения
  • Max Save Time - задает максимальное время хранения
Все эти команды имеют по два параметра - значение времени хранения (целое число) и код единицы измерения:
  • M - минуты
  • H - часы
  • D - дни
  • W - недели
Таким образом, команда
Min Save Time : 3 : H :
задает в качестве минимального времени хранения три часа. Значение «Default Save Time» используется для начального времени хранения, то есть назначается всякому объекту данной группы URL, полученному из сети в первый раз. В дальнейшем время хранения каждого объекта индивидуально подстраивается под частоту его реальных изменений системой адаптивного кэширования ESPS таким образом, что всегда находится в пределах между «Min Save Time» и «Max Save Time» (и будет тем меньше, чем чаще меняется объект). Минимальное значение времени кэширования во все трех командах - 1 минута, максимальное - 99 недель. Если же в какой-то группе URL задать во всех трех командах значение 0 (неважно в каких единицах), то такая группа URL будет полностью исключена из процесса кэширования. Этот механизм можно использовать для запрета кэширования тех или иных объектов.

Команды указания допустимого размера объектов

В эту группу команд входят:
  • Min Object Size - задает минимально допустимый размер объекта
  • Max Object Size - задает максимально допустимый размер объекта
Обе эти команды имеют по два параметра - значение допустимого размера (целое число) и код единицы измерения:
  • B - байты
  • K - килобайты
  • M - мегабайты
Таким образом, команда
Max Object Size : 256 : K :
задает в качестве максимально допустимого размера объекта для всех URL данной группы 256 килобайт.

Команда NEED SIZE IN HEADER

Эта команда определяет, будут ли кэшироваться те объекты, поле размера которых в заголовке HTTP-ответа хранящего их сервера отсутствует. Обычная практика заключается в том, что такие объекты не кэшируются, так как неизвестно, были ли они успешно получены до конца, или же просто прервалась связь. Однако, как показывает наш опыт, современная связь отличается в наше время достаточной устойчивостью, и можно смело кэшировать даже такие объекты. В сущности, отсутствие размера в заголовке обычно говорит о том, что данный объект динамически генерируется неким скриптом, который на момент передачи клиенту заголовка просто еще не знает того размера, который реально получится в результате работы этого скрипта. Иногда случается также, что держатели того или иного сервера пытаются таким образом помешать кэшированию своих объектов искусственным путем. В сервер ESPS данного поколения добавлена команда, позволяющая повысить степень кэширования, однако администратор должен применять ее (с параметром, разрешающим кэширование без размера в заголовке) на свой страх и риск. Опасность ее применения (с параметром, разрешающим кэширование без размера в заголовке) заключается в возможности «залипания» кэша на тех объектах, которые меняются очень часто. Данная команда имеет один параметр - 0 или 1, который и определяет, будет ли серверу ESPS требоваться (1) поле размера в заголовке ответа, или нет (0). Обычная (безопасная, общепринятая) настройка заключается, таким образом, в значении этого параметра равном единице.

Описание файла настройки роутинга портов

Настройки роутинга портов ESPS содержатся в специальном построчном текстовом файле, имя которого должно быть указано в параметре «List File Name» секции «Routers» файла esps40.ini. Информация в рассматриваемом файле настройки роутинга портов располагается построчно, так что каждая строка содержит одну из перечисленных ниже команд настройки, а сами команды располагаются блоками, каждый из которых описывает отдельный элемент роутинга. Каждая команда состоит из ряда полей, разделенных символом двоеточия, причем в первом поле всегда располагается код команды, а в последующих полях строки - параметры данной команды. Нераспознанные команды игнорируются, то есть рассматриваются как комментарии. Также игнорируются любые дополнительные поля в любой команде, так что администратор может свободно добавлять их в конце строки в качестве комментария. Пробелы и табуляции в полях игнорируются, так что их можно использовать как форматирующие символы для улучшения читаемости. Все команды, находящиеся в блоке того или иного элемента роутинга, определяют параметры только данного элемента, а на параметры других элементов никакого влияния не оказывают. Блок элемента роутинга портов начинается с команды «ROUTER» и заканчивается на следующей команде «ROUTER» или с окончанием самого файла настройки роутинга портов.
Следует отметить, что сам по себе факт создания элемента роутинга портов в описываемом файле еще не делает его доступным для клиентов ESPS. Для реального использования администратор должен еще в файле настройки клиентов дать с помощью команды «ENABLE ROUTE PORT» разрешение группам клиентов на использование данного элемента роутинга портов. Таким образом может обеспечиваться доступность различных элементов роутинга для одних групп клиентов сервера ESPS и недоступность для других.

Команда ROUTER

Эта команда создает элемент роутинга портов и должна идти первой в блоке описания элемента роутинга. Все последующие строки будут описывать параметры этого элемента роутинга, пока не встретится следующая команда ROUTER (или же не закончится сам управляющий файл). Эта команда имеет один параметр - имя данного элемента роутинга. Это имя будет отображаться на страницах статистики в соответствующих местах.

Команда REMOTE SERVER

Эта команда сообщает прокси-серверу ESPS с каким удаленным сервером он должен пытаться установить связь при поступлении клиентского запроса на данный элемент роутинга портов. Эта команда имеет один параметр - имя удаленного сервера или его IP-адрес (по выбору администратора).

Команда REMOTE PORT

Эта команда сообщает прокси-серверу ESPS с каким портом удаленного сервера он должен пытаться установить связь при поступлении клиентского запроса на данный элемент роутинга портов. Эта команда имеет один параметр - номер порта (целое положительное число). Отметим, что поскольку в данной команде речь идет о порте удаленного компьютера, а не локального (то есть того, на котором работает ESPS), от номеров портов в этой команде уникальность не требуется: администратор может, при необходимости, создать любое количество шлюзов, например, почты (25-й порт) на различные внешние SMTP-серверы. (Разумеется, 25-й порт был взят только для примера; это замечание в такой же мере относится и к любому другому номеру порта.)

Команда LOCAL PORT

Эта команда сообщает прокси-серверу ESPS на каком локальном порту он должен принимать клиентские запросы по данному элементу роутинга портов. Эта команда имеет один параметр - номер порта (целое положительное число). Следует отметить, что указанный в этой команде номер порта должен быть уникальным в пределах всего файла настройки роутинга портов: никакие два элемента роутинга портов не могут использовать один и тот же локальный порт. Более того, администратор должен также следить за тем, чтобы никакие другие программы на данном компьютере не были сконфигурированы на использование порта с тем же номером, так как обслуживать любой конкретный порт на одном компьютере может только одна программа.

Комментариев нет:

Отправить комментарий

 

Так говорил Учитель:

У хорошо написанной программы есть свой собственный рай, у плохо написанной — свой собственный ад.

Russian Developer

Взгляд его светел, усилия праведны, старания бесплодны, дело безнадежно ...