ОПИСАНИЕ PROXY-СЕРВЕРА ESPS

1. Условия применения.

Данное Изделие применяется любым конечным потребителем без каких бы
то ни было ограничений бесплатно. Запрещается продажа данного Изделия,
за исключением уплаты сумм, компенсирующих транспортные и почтовые
расходы по доставке Изделия конечному потребителю и стоимость носителей,
на которых поставляется Изделие. Разрешается также выставлять счета
конечному потребителю Изделия на суммы, компенсирующие затраты времени
технического персонала на установку, настройку и обслуживание Изделия,
если конечный потребитель не в состоянии произвести перечисленные действия
самостоятельно. Изделие предоставляется по принципу as is, то есть
производитель не несет никакой ответственности за возможный ущерб
от применения данного Изделия. В то же время, производитель гарантирует
отсутствие в Изделии какого-либо сознательно внедренного производителем
деструктивного или шпионского кода и заявляет о том, что в меру сил
ним были затрачены все необходимые усилия, направленные на предотвращение
какого либо вреда аппаратуре и данным конечного потребителя.

2. Платформа.

Изделие работает на платформе Win32, то есть под Windows 95, 98, ME,
NT, 2000. Рекомендуется применение Изделия на серверных платформах,
то есть под NT и 2000.

3. Назначение.

Изделие предназначено для перенаправления во внешний канал http-запросов
пользователей локальной сети и отсылки ответов внешнего канала авторам
соответствующих запросов. В течение определенного времени ответы сохраняются
в специальном буфере, так что внешний канал в некоторой степени разгружается
от повторных запросов одних и тех же страниц. Изделие может работать как
непосредственно через внешний канал, так и через другой прокси-сервер.
Кэширование получаемых ответов может быть как включено, так и выключено.
При включенном кэшировании время сохранения ответов регулируется параметрами
настройки. Порт, на который Изделие принимает запросы клиентов может
изменяться через конфигурационный файл. Имеется два способа кэширования -
через файловую систему и через SQL-сервер (например, InterBase). Способ
кэширования задается через конфигурационный файл. Имеется также возможность
регулирования списка обслуживаемых клиентов и серверов, которые разрешается
или запрещается им просматривать.

4. Описание настроек.

Настройки находятся в файле esps.ini в каталоге Windows. Этот файл
читается изделием один раз при запуске, так что при внесении
изменений в настройки необходимо для вступления в силу новых
параметров перезапустить Изделие.

4.1 Раздел [Options].


	SaveDir 	каталог, в котором хранится кэш при файловом
			методе кэширования. При запуске изделия он
			создается автоматически, по окончании работы - 
			автоматически удаляется вместе со всем содержимым.
			Будьте внимательны, не перенаправляйте этот
			параметр на каталог, содержащий Ваши собственные
			файлы.
			
	MaxSaveAge	время хранения страниц в кэше в формате чч:мм:сс
			начальное значение - 03:00:00, т.е. 3 часа.

	Port		номер порта, на котором Изделие принимает запросы
			клиента. Это значение не должно конфликтовать с
			другими сервисами Вашей машины. Начальное значение -
			3128.

	Caching		способ кэширования страниц для разгрузки внешнего
			канала: 0 - нет кэширования, 1 - кэширование через
			файловую систему, 2 - кэширование через SQL-сервер.
			Формат базы данных содержится в приложении.

4.2 Раздел [Activity].

Содержит информацию, а не настройки. Параметр "Start" указывает момент
последнего запуска Изделия, а параметр "Stop" - момент последнего
отключения Изделия.

4.3 Раздел [General].

     Version		информирует о текущей версии Изделия.

     ProxyMode		вид связи с внешим каналом: 1 - непосредственная
			связь, 2 - через другой прокси-сервер.

     MasterProxyServer	IP-адрес главного прокси-сервера, к которому
			должно обращаться Изделие (при ProxyMode=2).

     MasterProxyPort	порт главного прокси-сервера, к которому
			должно обращаться Изделие (при ProxyMode=2).

     ShowTimer		интервал работы таймера, обновляющего информацию
			на экране Изделия (в милисекундах). Начальное
			(рекомендуемое) значение - 1000 (т.е. 1 секунда).

     ClearTimer		интервал работы таймера, удаляющего из кэша устаревшие
			страницы (в милисекундах). Начальное (рекомендуемое)
			значение - 300000 (т.е. 5 минут).

     BaseSocketIdle	время ожидания данных от удаленного сервера из сокета
			(в милисекундах). Начальное (рекомендуемое) значение -
			15000 (т.е. 15 секунд).

     ThreadSocketIdle	дополнительное время ожидания данных от удаленного сервера
			прибавляемое к BaseSocketIdle на каждый активный поток
			(в милисекундах). Начальное (рекомендуемое) значение -
			1000 (т.е. 1 секунда).

     MinSaveSize	минимальный размер кэшируемых данных в байтах (страницы
			меньшего чем этот размер не кэшируются).

     MaxSaveSize	максимальный размер кэшируемых данных в байтах (страницы
			большего чем этот размер не кэшируются).


4.4 Раздел [SQL].

Задает параметры связи с SQL-сервером кэширования страниц. Для работы Изделия
с сервером БД на Вашей машине должен быть установлен набор драйверов BDE.

	User		имя пользователя, которое Изделие использует для
			связи с сервером БД. Для InserBase это, например,
			может быть SYSDBA.

	Password	пароль для доступа к серверу БД. Для InterBase это,
			например, может быть masterkey.

	Alias		псевдоним BDE, через который Изделие работает с сервером
			БД. Начальное значение параметра - esps.

	Connections	начальное количество соединений с сервером БД, которое
			устанавливает Изделие при запуске (в дальнейшем, при
			необходимости, дополнительные соединения будут создаваться
			Изделием автоматически). Рекомендуемое значение - 32.

4.5 Раздел [Access].

Управляет ограничениями на адреса обслуживаемых клиентов и на перечень серверов,
с которыми разрешено работать. Параметр данной секции Default определяет начальное
значение флага доступа, которое устанавливается Изделием при обработке каждого
случая перед началом рассмотрения правил: 0 - доступ запрещен, 1 - доступ разрешен.
Для описания правил служит два параметра - Open и Close. Параметр Open описывает
перечень разрешенных случаев, а параметр Close - запрещенных. Каждый из этих
двух параметров состоит из списка случаев, разделенных служебным символом,
описанным в параметре ItemTerm. Каждый случай состоит из двух полей - хоста
(клиент) и имени запрашиваемого сервера, разделенных другим служебным символом,
значение которого содержится в параметре HostTerm. В качестве адреса хоста-клиента
и адреса сервера может использоваться *, что означает любой адрес. Использовать
этот символ в обоих полях сразу не следует - такой случай описывается переменной
Default. Правило, не содержащее символа * ни в одном из своих полей считается
приоритетным по отношению к правилу, в одном из полей которого этот символ
содержится. Если случай подпадает под одно или несколько правил, то он
обрабатывается в соответствии с их приоритетом (при равном приоритете срабатывает
правило, которое встретилось раньше), если же нет такого правила, под которое
данный случай подпадает, то он обрабатывается в соответствии со значением
параметра Default.

Пример:

[Access]
Default=0
HostTerm=&
ItemTerm=#
Open=192.168.0.1&*#192.168.0.2&www.abc.com#
Close=192.168.0.1&www.abc.ru#

В этом примере хосту-клиенту 192.168.0.1 разрешен доступ через Изделие
к любому серверу, кроме www.abc.ru, а хосту-клиенту 192.168.0.2 -
только к серверу www.abc.com. Никакому другому хосту-клиенту не разрешен
доступ к Изделию вообще.

5. Удаленное управление.

Два параметра раздела [Access] служат целям удаленного управления: 

	AdminHost	IP-адрес машины, с которой разрешено удаленное
			управление. Никакая другая машина производить
			удаленное управление не сможет. Начальное значение
			этого параметра равно 0.0.0.0, что фактически блокирует
			систему удаленного управления.

	AdminPort	условный номер порта, через который будут проходить
			запросы удаленного администрирования. Начальное значение -
			33333.

Команды удаленного администрирования подаются из броузера в виде фиктивных запросов
следующего формата: AdminHost:AdminPort/Command. Список обслуживаемых комманд:

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

	HostStat	выдает статистику по хостам-клиентам (получено байт, отослано
			байт, момент начала работы, момент последнего обращения).


ПРИЛОЖЕНИЕ.

Формат SQL-базы данных для кэширования страниц. Сама база данных
производителем не поставляется и должна генерироваться клиентом
самостоятельно.

База данных содержит одну таблицу, один генератор,
один триггер и два индекса:


CREATE TABLE INETPAGES (PAGEID INTEGER NOT NULL,
        PAGEDATE DATE,
        PAGEBODY BLOB,
        PAGECRC INTEGER,
UNIQUE (PAGEID));

CREATE INDEX INETPAGES_CRC ON INETPAGES(PAGECRC);
CREATE INDEX INETPAGES_DATE ON INETPAGES(PAGEDATE);

CREATE GENERATOR KEY_GEN;

CREATE TRIGGER SET_INETPAGE_ID FOR INETPAGES                       
ACTIVE BEFORE INSERT POSITION 0 
AS BEGIN
NEW.PageId = GEN_ID (key_gen, 1);
END