Web-server Apache vs web-server IISСравнение веб-серверов Apache и IIS

Споры о выборе Apache или IIS являются столь же давними, как и споры о выборе ОС — Linux или Windows. В нашей компании спор решился просто — наше готовое решение «интернет-шлюз Debian CBS» поддерживает оба веб-сервера. И поскольку они являются наиболее широко использованными приложениями для веб-серверов на рынке, то сделать выбор действительно трудно. Если Вы еще думаете, какое программное обеспечение должно работать на Вашем сервере, рассуждения в этой статье должны Вам помочь сделать более взвешенное решение.

Apache

Сервер Apache является приложением веб-сервера с открытым исходным кодом, разработанным Apache Software Foundation. Программное обеспечение сервера свободно распространяется и данная лицензия с открытым исходным кодом означает, что пользователи могут отредактировать базовый код, чтобы настроить производительность и способствовать разработке программы.

Хоть Apache и будет работать на любой операционной системе, его намного чаще используют в комбинации с операционной системой Linux, которая также распространяется с открытым исходным кодом. Эти два компонента, объединенные с MySQL, базой данных PHP и языком сценариев, образуют популярное решение для веб-сервера под названием LAMP (комплекс серверного программного обеспечения).

Основные преимущества Apache и серверных систем LAMP:

  • низкие затраты, так как нет необходимости приобретать лицензии на программное обеспечение;
  • гибкое программирование из-за открытого исходного кода;
  • улучшенная безопасность, так как Apache был разработан для операционной системы не-Windows (а большинство вредоносных программ написано под ОС от Microsoft), то он всегда имел репутацию более безопасной системы, чем IIS производства Microsoft.

Internet Information Services (IIS)

IIS от Microsoft — второе по популярности программное обеспечение для веб-сервера. Он состоит из серии служб, включая протокол передачи файлов (FTP), протокол передачи гипертекста (HTTP), простой протокол передачи почты (SMTP) и другие, которые позволяют системе Windows управлять веб-сайтами. Последняя версия также включает различные модули для безопасности, кэширования, журналирования, сжатия и диагностики.

Поскольку IIS работает только с ОС Windows, то выбор IIS подразумевает под собой и выбор Windows Server, что, несомненно, увеличивает эксплуатационные расходы. Плюс Windows подвержен большему количеству вредоносных атак на программное обеспечение и имеет репутацию менее защищенного сервера, чем Apache.

Есть поводы для волнения по производительности IIS при использовании PHP по сравнению с Apache. До недавнего времени, были два способа выполнить PHP в среде Windows: это медленный путь с CGI и ненадежный путь с ISAPI. Поскольку много сценариев PHP записаны для Apache и Linux, то их выполнение на платформе Windows с ISAPI может заставить их нарушать и разделять процессы в IIS при взаимодействие с приложениями. Но в последнее время улучшение было достигнуто через FastCGI, с функцией, которая позволяет веб-серверу IIS осуществить быстрый и надежный хостинг PHP.

Итак, почему бы Вы могли выбрать связку Windows/IIS, а не систему LAMP?

  • Windows и IIS поддерживаются корпорацией Microsoft, тогда как Apache поддерживается только пользовательским сообществом;
  • IIS поддерживает платформу.NET Microsoft и сценарии ASPX.
  • модули позволяют включить потоковую передачу аудио и видеоконтента.

Итог сравнения:

  1. Если стоимость лицензий для Вас является главным критерием, то комбинация LAMP будет намного дешевле, поскольку нет никаких затрат на лицензирования.
  2. Если важна безопасность, то Apache известен как более безопасный веб-сервер.
  3. Если Вы используете любую ОС, кроме операционной системы Windows на Ваших серверах, то Вы не в состоянии использовать IIS.
  4. Однако, если Вам нужно выполнить сценарий, который полагается только на ASPX или Вы предпочитаете более удобные для пользователя средства администрирования, то Вам нужна связка IIS на платформе Windows.

Приложение. Сравнение кода (мнение программистов)

Все программисты знакомы с фразой «запутанный код«. Данный термин используют в таких ситуациях, когда функциональность (здесь число строк кода и вызовов функции) растет бездумно, что и отражается на простоте. Сложность кода — ярый враг безопасности и устойчивости системы в целом, когда дело доходит до разработки программного обеспечения.

Следующие изображения наглядно демонстрируют пример запутанного кода. Они явно демонстрируют, почему большинство проектов Web 2.0 используют именно систему LAMP с открытым исходным кодом (связка Linux+Apache+Php/MySQL).

Эта схема внутренних системных вызовов Apache показывает четкую организацию и понятность. Это аккуратно, это опрятно и это компактно. Это отличный пример того, как должна смотреться схема системных вызовов.

код Apache

Далее схема у IIS. Выглядит очень запутанно. Те, кто вынужден управлять данным получающим web-сервером, должны действительно постараться, чтобы все было согласованно и работоспособно.

код IIS