Wingate 3 по-русски


What to cache (что кэшировать)


Cache everything - кэшировать все;

Specify which requests will be cached - определить запросы подлежащие кэшированию;

Add Filter - добавить фильтр;

Add Criterion - добавить критерий;

Delete - удалить;

Apply - применить.

В этом примере кэширование не разрешается для пользователей mary и bob. Заметим, что они имеются в том же самом фильтре!

Для понимания того как работает кэш вы должны понимать операторы AND, OR и NOT и знать правила их использования в правилах логики в WinGate.

AND (и): Если между двумя событиями стоит AND, значит оба они должны произойти.

OR (или): Если между двумя событиями стоит OR, то должно произойти хотя бы одно из них.

NOT (не): Если к событию критерия применить оператор NOT, тогда этот критерий применяется, если событие не происходит.

В логике работы кэша Filters соответствует оператору OR, а Сriteria - оператору AND. Так что, если запрос соответствует всем критеряим и любому из фильтров, то он будет помещен в кэш. В противном случае - нет.

Здесь кроется общая ловушка. Если вы хотите сказать: "Не кэшировать файлы для пользователей mary и bob". Вы можете предположить. что для выполнения этого вам надо установить два фильтра. Один с критерием Not User: Username equals mary, а другой с критерием Not User: Username equals bob. Но в таком случае кэшироваться абсолютно все: bob не может сделать это через фильтр с критерием Not User: Username equals bob, но его имя не mary, поэтому он может сделать это в соответствии со вторым фильтром. Для mary наоборот: нет доступа по второму фильтру, но есть по первому.

Фраза "Не кэшировать файлы для mary или bob" на самом деле означает: "Не кэшировать файлы ни для mary, ни для bob". Значит одновременно должны выполняться два условия:

    a. Не кэшировать файлы запрошенные пользователем bob.

    b. Не кэшировать файлы запрошенные пользователем mary.

Итак, реальная логика заключается в следующем: Следует кэшировать файлы не (NOT) запрошенные пользователем bob и не (NOT) запрошенные пользователем mary. Окончательным результатом будет один фильтр с двумя критериями, как показано на рисунке выше.

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

Это применимо ко всем правилам в WinGate, включая правила кэширования и правила доступа.



Содержание раздела