Linux: Полное руководство
Шрифт:
С помощью опции SET_DEFAULT вы можете указать значение по умолчанию. Например, если вы укажете SET DEFAULT 1, то при удалении клиента с любым номером его заказы будут приписываться клиенту с номером 1, который, разумеется, всегда есть в таблице CLIENTS.
Опция SET NULL устанавливает значение NULL в качестве номера клиента, если тот удален из таблицы CLIENTS. В нашем примере это значение не допускается.
Две страницы назад мы добавили поле ZIP. А как его удалить? Стандартом SQL не предусмотрено удаление столбцов, но в MySQL мы все же можем это сделать:
Как удалить
Удалить таблицу еще проще:
В первом случае вы не удаляете таблицу: файл таблицы все еще остается на диске. Вы удалили только содержимое таблицы. Во втором случае вы полностью удаляете таблицу.
Естественно, удалить таблицу можно только при наличии соответствующих прав.
Напоследок рассмотрим два полезных примера. Предположим, что нам нужно установить ограничение на количество товара, которое можно продать клиенту. Допустим, в данный момент у нас нет такого количества товара на складе, следовательно, мы не можем оформить заказ. Ограничение данного типа можно определить с помощью запроса:
Установить минимальное количество для заказа можно так:
Следующий запрос устанавливает минимальный размер заказа, если таблица уже существует:
Глава 18.
Прокси-серверы SQUID и SOCKS
18.1. Что такое прокси-сервер?
Прокси-сервер (сервер-посредник) — это программа, которая выполняет HTTP/FTP-запросы от имени клиентов. Применение прокси-сервера дает возможность использовать фиктивные IP-адреса во внутренней сети (IP-маскарадинг), увеличивает скорость обработки запроса при повторном обращении (кэширование), а также обеспечивает дополнительную безопасность.
Нет смысла устанавливать прокси на своей домашней машине, так как функции кэширования выполняет сам браузер. Прокси-сервер стоит применять лишь в том случае, если в вашей сети есть несколько компьютеров, которым нужен выход в Интернет. Если один из них уже запрашивал какой-то интернет-ресурс, то следующий пользователь, обратившийся за этим же ресурсом, получит ответ не из Интернета, а из кэша прокси- сервера, то есть значительно быстрее.
SQUID — это нечто большее, чем просто посредник. Это своеобразный стандарт кэширования информации в сети Интернет. В силу повсеместной распространенности SQUID, в книге я уделил его конфигурированию большое внимание.
Прокси-сервер SQUID образуют несколько программ, в числе которых сам демон squid, а также программа dnsserver — программа обработки DNS-запросов. Когда запускается squid, то сначала он запускает заданное количество процессов dnsserver,
каждый из которых работает самостоятельно и может осуществлять только один поиск в системе DNS. За счет этого уменьшается общее время ожидания ответа DNS.18.2. Установка SQUID
Я использую версию squid 2.5. Пакет squid входит в состав современных дистрибутивов, а если его у вас почему-то нет, то скачать можно с
При сборке SQUID из исходных кодов первым шагом должна быть команда
SQUID будет установлен в каталог, заданный ключом prefix. Другие ключи сценария configure перечислены в таблице 18.1.
Ключи сценария configure Таблица 18.1
Ключ | Назначение |
---|---|
– -enable-icmp | Измерить путь до каждого HTTP-сервера при запросах с помощью ICMP |
– -enable-snmp | Включить SNMP-мониторинг |
– -enable-delay-pools | Управление трафиком |
– -disable-weep | Отключить Web Cache Coordination Protocol |
– -enable-kill-parent-hack | Более корректный shutdown |
– -enable-splaytree | Позволяет увеличить скорость обработки ACL |
18.3. Настройка SQUID
Сервер SQUID использует файл конфигурации
Укажите прокси-провайдера (тот сервер, который станет вашим «соседом» (neighbour, peer)):
Установите объем памяти, разрешенный для кэша squid, в байтах, и каталог для дискового кэша:
где 1024 — количество мегабайтов, отводимое под кэш в указанном каталоге. В этом каталоге будут храниться кэшированные файлы. Стоит ли говорить, что если у вас несколько жестких дисков, то кэш нужно разместить на самом быстром из них.
Укажите узлы, которым разрешен доступ к прокси-серверу:
Укажите разрешенные SSL-порты:
Запретите метод CONNECT для всех портов, кроме указанных в acl SSL_ports:
Запретите доступ всем, кроме тех, кому можно: