В продолжении статей про Squid, хотелось бы рассказать о том, как можно создать собственную страницу с ошибками или обращением к пользователю.
Вот для примера мы немного видоизменим сообщение Access Deny, которое пользователь получает по дефолту. Которое, кстати, содержит много непонятного ). Вам же не нужны звонки “помогите. У меня сломался интернет”.
Итак, в конфиге сквида раскомментим следующее:

error_directory /usr/share/squid/errors/en
Заходим в ту папку и создаем там файл с именем, допустим, ERR_WORKTIME.

Поменяем конфиг сквида вот так:
Что мы поменяли:
добавили директиву deny_info, в которой указали страницу ошибки ERR_WORKTIME и ACL, который её должен вызывать WORK_TIME2.
Для полного счастья нужно ещё прописать ниже такую же директиву с такой же ошибкой и для WORK_TIME1.
И ещё, мы немного изменили порядок следования директив в http_access (много копий сломано, оказывается, будет обрабатываться только последняя из них), это на функционал не повлияет, поскольку негласно между директивами в http_access стоит “И” (для справки, а между директивами acl, если несколько их перечисляется через пробел, стоит “ИЛИ”).

Перечитаем конфиг или перезапустим Squid и увидим:

Как видите, всё сработало как надо. А ключевые вставки (например IP адрес клиента) можно взять из мануала по Squid.
Таким образом предлагается создать свои страницы на все случаи, где русским по чёрному (белому) объяснить пользователю, почему такая ошибка возникла и куда надо звонить/не_звонить/писать/стучать_лбом.
Comments: