Валентин Синицын
Рассмотрим типичную для небольшой организации конструкцию – шлюз в Интернет,
работающий под управлением UNIX или Microsoft Windows, прокси-сервер, веб-сервер
сети Интранет, почтовый сервер и т. д. Оказывается, число ее элементов можно
несколько сократить, и в соответствии с золотым правилом инженера увеличить тем
самым общую надежность системы. Сегодня мы поговорим о делегировании Apache
основных функций кэширующего прокси-сервера (например, Squid) и даже кое-чего сверх
них. В качестве базовой ОС будем использовать Linux, хотя многое из сказанного
ниже может быть без ограничения общности применено и для других платформ.
Согласен, использование Apache в качестве прокси-сервера
выглядит несколько нестандартно, однако, оно имеет ряд преимуществ. Это, в
первую очередь, возможность динамического сжатия документов, отправляемых
клиентам, что может вылиться в серьезную экономию, если для передачи данных
используется арендованный канал с помегабайтной оплатой входящего трафика
(допустим, офисов у фирмы два, а сервер всего один). Кроме того, оно сокращает
число сервисов, работающих в системе, а значит, у потенциального злоумышленника
будет меньше мишеней для проведения атаки, а у администратора в свою очередь
меньше объектов, требующих неусыпного наблюдения и поддержки. Впрочем, как и
все в нашем неидеальном мире, Apache в роли прокси-сервера имеет и некоторые
недостатки, как то: содержит экспериментальные или написанные сторонними
разработчиками модули (при желании можно обойтись и без них) и неизвестным
образом ведет себя при увеличении нагрузки (вполне допускаю, что все будет
прекрасно работать, однако, специализированного стресс-тестирования не
проводил). Какая чаша перевесит – решать вам. Руководствуясь личным опытом, я
вполне могу рекомендовать применение прокси-сервера на базе Apache в небольших
сетях.
Покончив с теоретическими вопросами, перейдем к
техническим деталям. Для реализации задуманного нам понадобится Apache версии
2.0.53 и выше
с включенными mod_proxy, mod_cache и mod_deflate. В отличие от
специализированных решений вроде упомянутого выше Squid, прокси-сервер на базе Apache
имеет модульную архитектуру, все мыслимые и немыслимые функции которой
построены по принципу: общая база + провайдеры. Мы не раз убедимся в этом по
ходу изложения. Итак, приступим к первой фазе.