Apache vs IIS



В конце прошлого года провел некоторый анализ, сейчас вот нашел его. Кому интересно, может почитать:


Давайте посмотрим на данные netstat.ru. Если верить
приводимым там сведениям, самым популярным web-сервером Рунета является Apache.
Этот продукт распространяется свободно, а благодаря открытому API пользуется
благосклонностью разработчиков дополнительных модулей.

Сайт ZDNet опубликовал обзор под названием "Apache 2.0
бьет IIS на его собственном поле". В статье речь идет о двух известиях,
недавно распространившихся по интернету: во-первых, Microsoft объявил об
обнаружении 10 новых уязвимостей в своем серверном ПО IIS 5.0, во-вторых, вышла
новая версия сервера Apache 2.0 (точнее, версия 2.0.35).

Автор ZDNet в очередной раз критикует степень безопасности
IIS, утверждая, что степень надежности Apache несравнимо выше. А самое главное
— это производительность. Прежние версии Apache под Windows компилировались из
кода, написанного для UNIX, и производительность сервера оказывалась ниже, чем
у "родного" для Windows сервера IIS.

С Apache 2.0 дело обстоит иначе. Версия Apache 2.0 для
Windows адаптирована для работы под этой операционной системой. Он ничуть не
уступает IIS по производительности.

В тестовой лаборатории eWEEK Labs сравнивалась
производительность Apache 2.0 и IIS 5.0 в среде Windows 2000 Advanced Server.
Apache показал результаты, сравнимые с результатами IIS. Так что, как сообщает
ZDNet, тем, кто рассматривает перспективу перехода с IIS на Apache для Windows,
не стоит опасаться снижения производительности.

Единственная проблема — это отсутствие дружественного к
пользователю интерфейса. Все настройки и администрирование, по утверждению
ZDNet, производятся через редактирование файла .conf.

В 2003 году исследование веб-серверов,
проведенное британской компанией Netcraft, показало, что Apache 2.0 for Windows
внедряется медленно — возможно, это вызвано проблемами безопасности. Спектр
ошибок — от предоставления неавторизованным пользователям возможности изучать
структуру каталога до атак на отказ в обслуживании, вызванных именами устройств
особого формата. «Поражает то, что все это типичные уязвимости, которыми в
прошлые годы страдали многие другие продукты, где они давно исправлены», —
говорится в заявлении компании.

Значительным плюсом Apache является его многоплатформенность
в отличие от IIS. Если
когда понадобиться перенести сайт на другую ОС, на другую систему, на другую
архитектуру (не x86,
скажем), с Apache не возникнет проблем.

Apache более открытая система, ее недостатки и ошибки известны и их
можно изучить и исправить. IIS же является продуктом Microsoft, которая зачастую запаздывает с выпуском обновлений, не
говоря уже о том, чтобы раскрыть сущность исправленных или найденных ошибок в
полной мере.

Еще одним нюансом является PHP. Как известно PHP под IIS существует
(устанавливается) принципиально в двух вариантах: в качестве CGI (PHP.exe) либо
в виде нескольких ISAPI модулей (например, php4isapi.dll). В первом случае
(CGI) производительность оставляет желать много лучшего – простая фиксация
клавиши F5 нажатой приводит к «отказу в обслуживании». В принципе этого и
следовало ожидать – CGI технология подразумевает образование отдельного
процесса на каждый запрос пользователя – это легко увидеть, воспользовавшись
Task Manager для просмотра процессов происходящих в памяти сервера (даже в
случае работы одного пользователя с веб приложением в случае нажатой клавиши F5
в памяти сервера находятся одновременно до 10 PHP.exe)

Существует, однако, технология под названием FastCGI
решающая многие проблемы с производительностью CGI. В частности при
использовании FastCGI модуля уже не происходит ре-парсинга PHP.ini, ре-загрузки
всех необходимых «extensions» и т.д. при каждом обращении. Однако FastCGI
является типичным представителем freeware third-party продуктов (за ней не
стоит какой-либо серьезный производитель, напротив, ее автором является один из
сотрудников компании ActiveState) и, будучи системным продуктом, требует
постоянной поддержки при изменениях версий тех системных продуктов, на которых
FastCGI (в данном случае IIS) может работать. В связи с этим я бы не рекомендовал
его использование в корпоративной программной среде, кроме как при наличии
серьезных оснований.

Второй способ установки PHP под IIS (ISAPI модули) заявлен в
документации PHP как «не достаточно готовый к реальному использованию на
местах» (“not of production quality” в оригинале) и, при этом, конечно же, не
может быть рекомендован к использованию в имеющейся корпоративной среде.

Похожие посты: