Ведя речь об интернет-магазинах и торговых системах, совершенно естественно утвержать, что для них действуют все те же правила, что справедливы для любого персонального или корпоративного web-сайта. А для развертывания таких сайтов применимо множество разных web-серверов с разными возможностями. характеристиками, спецификой применения. Вместе с тем, учитывая ограниченный набор рассматриваемых платформ, мы имеем и ограниченный набор инфраструктурных продуктов, которые надлежащим образом интегрируются и поддерживаются этими платформами. Причем создатели самих платформ исходили не только из показателей популярности того или иного серверного решения, но из соответствия «масштабов», чтобы возможности выбранного web-сервера не накладывали искусственных ограничений на применимость самой платформы в проектах разного уровня сложности.
Таким образом, для всех платформ «нижнего» уровня (VirtueMart, Magento и 1С-Битрикс: Управление сайтом), базирующихся на технологии PHP, рекомендуемым является использование web-сервера Apache HTTP Server (LAMP stack). В качестве альтернативы для высоконагруженных проектов может рассматриваться web-сервер Nginx (LNMP stack), обычно, в паре с менеджером php-fpm, или в качестве балансировщика нагрузки (проксирующего сервера) для нескольких серверов Apache HTTP Server. В дополнение к этому для 1С-Битрикс: Управление сайтом и VirtueMart (устанавливается поверх CMS Joomla/Mambo) в качестве web-сервера возможно использование Microsoft IIS. Причем по отзывам экспертов в версии IIS 7 возможно достигнуть очень высоких показателей производительности для обеих этих платформ. И если, к примеру, сайты на Joomla/Mambo разработчики обычно предпочитают строить на базе LAMP, то для 1С-Битрикс: Управление сайтом использование IIS не является такой уж редкостью.
Переходя к рассмотрению e-commerce платформ enterprise-класса от IBM, Oracle и SAP следует заметить, что они глубже интегрируются с возможностями используемого web-сервера и, соответственно, накладывают больше ограничений. И если в документации на 1С-Битрикс: Управление сайтом может быть написано, что система развертывается «под любым сервером с поддержкой php», то для систем enterprise-класса, как правило, существует закрытый список с указанием даже конкретных версий серверов, под которыми система была протестирована. Еще одной общей чертой рассматриваемых платформ является то, что они используют web-сервер по сути как прокси (proxy), через который транслируются обращения к серверу(ам) приложений. То есть web-сервер нужен только для распределения нагрузки, управления пулами соединений, первичной авторизации и т.п. Как правило, через такие web-сервера направляется только трафик от внешних пользователей (посетителей) торговой площадки. Административные интерфейсы замыкаются сразу на встроенные http-сервера, которые входят в состав серверов приложений.
Такая архитектура допускает даже полное отсутствие web-сервера как отдельной сущности. Возможностей встроенного http-сервера может оказаться вполне достаточно для обеспечения всех потребностей системы. Так что, например, для целей разработки обычно ограничиваются развертыванием соответствующего J2EE-сервера приложений. И все же, для масштабных высоко нагруженных enterprise-решений наличие отдельного web-сервера (серверов) может оказаться полезным, т.к. позволяет использовать развитые механизмы кэширования, распределения нагрузки, управления пуллингом, интеграцию с CDN и т.п. Существуют также специализированные решения, такие как Oracle Traffic Director (используется только совместно с Exalogic), которые позволяют отказаться от развертывания web-сервера и напрямую взаимодействуют с серверами приложений Oracle Weblogic.
Выбор конкретного web-сервера определяется не только самой e-commerce платформой, но в большей степени тем, какой конкретно J2EE-сервер использован для ее развертывания. И поскольку тут могут использоваться Oracle Weblogic, IBM Websphere Application Server или JBoss EAP, то для каждого из них существует свой набор интегрируемых web-серверов.
IBM Websphere Commerce поддерживает следующие web-сервера: IBM HTTP Server1, Microsoft IIS, Oracle iPlanet Web Server (Sun Java System Web Server).
1 IBM HTTP Server – это полнофункциональный сервер, поставляемый бесплатно вместе с некоторыми продуктами IBM, например IBM WebSphere Application Server. Этот веб-сервер можно использовать в проектах, в которых нецелесообразно применять дорогостоящий и поддерживаемый HTTP-сервер. IBM HTTP Server создан на основе Apache HTTP Server и включает широкий набор функций Apache, а также расширения IBM.
Oracle Commerce поддерживает:
- в случае использования Oracle Weblogic: Oracle HTTP Server2, Apache HTTP Server, Oracle iPlanet Web Server (Sun Java System Web Server), Microsoft IIS;
- в случае использования IBM Websphere Application Server: IBM HTTP Server, Microsoft IIS, Oracle iPlanet Web Server (Sun Java System Web Server);
- в случае использования JBoss EAP: jBoss Application Platform Apache Web Server, JBoss Enterprise Web Server, Apache HTTP Server, Oracle iPlanet Web Server (Sun Java System Web Server), Microsoft IIS.
2 Oracle HTTP Server основан на хорошо зарекомендовавшей себя технологии Apache HTTP Server. Кроме того, он включает дополнительные компоненты, реализующие возможности Oracle Fusion Middleware.
SAP hybris поддерживает: VMware vFabric Web Server, VMware vFabric Enterprise Ready Server (ERS), Apache HTTP Server, Microsoft IIS, Oracle iPlanet Web Server (Sun Java System Web Server). Строго говоря, учитывая тот факт, что SAP hybris в качестве сервера приложений использует Apache Tomcat или его enterprise-версию VMware vFabric tc Server, то в качестве web-сервера на фронте может применяться любой сервер с поддержкой mod_jk (модуль для реализации протокола Apache JServ Protocol).
Еще раз можно отметить, что приведенный перечень архитектур не является закрытым. К примеру, тот же Oracle Commerce при желании можно развернуть и под Apache Tomcat с web-сервером VMware vFabric ERS на фронте. Но такая конфигурация не является рекомендованной и «допиливание напильником» здесь может оказаться довольно масштабным и утомительным.