Источник: http://www.ibm.com/developerworks
Для версии V7.0.0.8 с пакетом исправлений Feature Pack 7
В этом учебном руководстве описывается, как установить и сконфигурировать компонент IBM HTTP Server для работы со средой разработки продукта WebSphere® Commerce (версия V7.0.0.8 с установленным пакетом Feature Pack 7). Эта конфигурация может быть полезна для таких задач, как оптимизация поисковых механизмов, настройка производительности веб-сервера, перенаправление запросов к прокси-серверу и т. д.
Предисловие
В этом учебном руководстве описывается, как установить и сконфигурировать компонент IBM HTTP Server для работы со средой разработки продукта WebSphere® Commerce версии V7.0.0.8 с установленным пакетом Feature Pack 7. В статью включены примеры конфигурационных файлов и пошаговые инструкции.
Цели
Конечная цель состоит в том, чтобы сервер IBM HTTP Server прослушивал заданные порты и реагировал на поступающие в них запросы для взаимодействия с сервером WebSphere Commerce Test Server. Веб-сервер Apache прослушивает порты 80, 443 и 8006, а все остальные порты продолжает отслеживать сервер WebSphere Commerce Test Server. В прилагаемом к статьеПримере программного кода содержится конфигурационный файл веб-сервера, в который вы сможете вносить изменения. Этот файл демонстрирует конфигурации веб-сервера. На рис. 1 показано, как ваш веб-сервер будет сконфигурирован после того, как вы пройдете материал данного учебного руководства.
Рисунок 1. Сконфигурированный веб-сервер
Предварительные условия
Это учебное руководство ориентировано на Java-программистов с начальным уровнем квалификации. От читателя требуется общее знакомство со средой разработки WebSphere Commerce.
Системные требования
Чтобы создавать примеры, приведенные в этом учебном руководстве, у вас должен быть установлен и сконфигурирован продукт WebSphere Commerce Developer версии V7.0.0.8.
Продолжительность
Для прохождения материала данного учебного руководства требуется приблизительно один час.
Введение
Среда разработки WebSphere Commerce комплектуется компонентом WebSphere Commerce Test Server, который выполняет функции веб-сервера и функции сервера приложений. Однако функциональность этого веб-сервера имеет определенные ограничения. В некоторых ситуациях целесообразно сконфигурировать веб-сервер Apache для поддержки взаимодействия между клиентом и сервером WebSphere Commerce Test Server. Использование веб-сервера Apache в вашей среде разработки полезно в следующих случаях:
- Вы применяете стратегию оптимизации поискового механизма с использованием модулей mod_rewrite.
- Вы хотите использовать такие возможности, как сжатие файлов, кэширование файлов, задание сроков годности статического контента с целью повышения производительности или оптимизации своего приложения.
- Вы создаете mashup-решения.
- Вы хотите сконфигурировать обратный прокси-сервер для направления запросов в другое место.
В этом учебном руководстве изложена поэтапная процедура установки сервера IBM HTTP Server и его конфигурирования для взаимодействия со средой разработки WebSphere Commerce.
Инструкции
Чтобы сконфигурировать сервер IBM HTTP Server и среду разработки WebSphere Commerce, необходимо выполнить несколько шагов. В обобщенном виде эти шаги выглядят следующим образом.
- Загрузка компонента IBM HTTP Server.
- Установка компонента IBM HTTP Server.
- Загрузка плагина для продукта WebSphere Application Server.
- Установка плагина для продукта WebSphere Application Server.
- Конфигурирование компонента IBM HTTP Server.
- Копирование файла plugin-config.xml.
- Конфигурирование компонента WebSphere Commerce Test Server.
- Конфигурирование сертификатов сервера WebSphere.
В начало
Шаг 1. Загрузка компонента IBM HTTP Server
Если вы в свое время приобрели программное обеспечение WebSphere, то у вас уже может иметься устанавливаемая версия компонента IBM HTTP Server. В противном случае вы можете загрузить этот компонент по следующей ссылке: IBM HTTP Server 7.0. Загрузите соответствующий архив и поместите его в свою систему WebSphere Commerce Developer. Теперь вы готовы к установке сервера IBM HTTP Server.
В начало
Шаг 2. Установка компонента IBM HTTP Server
- Распакуйте загруженный вами пакет во временный каталог с именем c:\WebSphere_download. Дважды нажмите на имя файлаC:\WebSphere_download\IHS_7000\IHS\install.exe для запуска установки. Выполняйте указания мастера установки на нескольких следующих экранах. На экране каталога установки выберите местоположение C:\WebSphere\IHS (рис. 2).
Рисунок 2. Каталог установки компонента IBM HTTP Server
- Оставьте для сервера IBM HTTP Server и сервера IBM HTTP Administration значения портов 80 и 8008 соответственно. Нажмите Next.
- На экране Windows Service Definition убедитесь в том, что для сервера IBM HTTP Server и для сервера IBM HTTP Administration выбрана опция Run … as a Windows® service (исполнять как сервис Windows).
- Выберите Log on as a specified user account и используйте учетные данные пользователя с правами администратора Windows (рис. 3). Нажмите Next.
Рисунок 3. Экран Windows Service Definition
- На экране HTTP Administration Server Authentication убедитесь в отсутствии флажка в окошке Create a user ID for IBM HTTP Server administration server authentication. Нажмите Next.
- Вам будет показан сводный экран (рис. 4). Просмотрите выбранные опции и нажмите Next для установки компонента IBM HTTP Server.
Рисунок 4. Сводный экран установки компонента IBM HTTP Server
- Мастер выполнит установку компонента IBM HTTP Server. После завершения установки нажмите Finish для выхода из мастера установки.
Итак, установка компонента IBM HTTP Server завершена. Теперь мы переходим к следующему разделу - к установке плагина веб-сервера.
В начало
Шаг 3. Загрузка плагина для WebSphere Application Server V7.0
Данный плагин WebSphere представляет собой программный компонент, который связывает сервер IBM HTTP Server с сервером WebSphere Commerce. Этот компонент определяет, каким образом взаимодействуют друг с другом эти два сервера. Плагин можно загрузить по ссылке: WebServer plug-in for WebSphere Application Server V7.0. Теперь вы готовы к установке плагина WebServer для продукта WebSphere Application Server for Windows.
В начало
Шаг 4. Установка плагина для WebSphere Application Server
- Распакуйте загруженный вами пакет во временный каталог с именем c:\WebSphere_download\Plugin. Дважды нажмите на имя файла C:\WebSphere_download\Plugin\plugin\install.exe для запуска установки. На начальном экране убедитесь в отсутствии флажков во всех окошках (рис. 5). Нажмите Next.
Рисунок 5. Начальный экран плагина для продукта WebSphere Application Server
- Выберите IBM HTTP Server V7 и нажмите Next.
- Выберите Web server machine (remote) и нажмите Next.
- Выберите C:\WebSphere\Plugins в качестве каталога установки и нажмите Next (рис. 6).
Рисунок 6. Каталог установки плагина
- Укажите местоположение файла httpd.conf компонента IBM HTTP Server, который был установлен предыдущим мастером. В данном примере этот файл находится в следующем месте:
C:\WebSphere\IHS\conf\httpd.conf
Убедитесь в том, что выбран порт 80 (рис. 7). Нажмите Next.
Рисунок 7. Местоположение файла httpd.conf
- Убедитесь в том, что определение веб-сервера (web server definition) имеет имя webserver1. Нажмите Next.
- Оставьте неизменным местоположение конфигурационного файла плагина и нажмите Next.
- Задайте имя сервера приложений. Например, localhost - это имя локального компьютера. Нажмите Next.
- Для продолжения нажимайте Next вплоть до появления сводного экрана установки. Убедитесь в корректности всех настроек и нажмите Next для установки плагина для WebSphere Application Server (рис. 8).
Рисунок 8. Сводный экран установки
- Для завершения работы мастера нажмите Finish.
Итак, вы установили плагин для WebSphere Application Server. Теперь мы сконфигурируем компонент IBM HTTP Server.
В начало
Шаг 5. Конфигурирование компонента IBM HTTP Server
По умолчанию в конфигурационном файле компонента IBM HTTP Server не сконфигурирована поддержка технологии SSL. Вам нужно сконфигурировать сервер для поддержки SSL. Вы можете воспользоваться самоподписанным сертификатом SSL или подписанным сертификатом от стороннего поставщика. Самоподписанный сертификат включен в Пример программного кода для этого учебного руководства и находится в каталоге IHS\SSLKeys
. Для этого ключа используется пароль is8enuff. Учебный файл httpd.conf находится в каталоге IHS\conf
.
- Скопируйте каталог IHS\SSLKeys в каталог C:\WebSphere\IHS.
- Создайте резервную копию файла C:\WebSphere\IHS\conf\httpd.conf .
- Откройте файл C:\WebSphere\IHS\conf\httpd.conf.
- Скопируйте следующие строки в нижнюю часть файла:
Листинг 1. Конфигурационный файл httpd.conf
# Реализация поддержки SSL в данном модуле и в данной конфигурации LoadModule ibm_ssl_module modules/mod_ibm_ssl.so SSLDisable KeyFile "C:\WebSphere\IHS\SSLKeys\sslkeys.kdb" # Пример. Реализация тегирования в данном модуле и в данной конфигурации # статический контент со сроками годности LoadModule expires_module modules/mod_expires.so ExpiresActive on ExpiresByType image/gif "access plus 3 days" ExpiresByType image/png "access plus 3 days" ExpiresByType image/jpeg "access plus 3 days" ExpiresByType application/x-shockwave-flash "access plus 3 days" ExpiresByType image/x-icon "access plus 3 days" ExpiresByType text/javascript "access plus 3 days" ExpiresByType application/x-javascript "access plus 3 days" ExpiresByType text/css "access plus 3 days" ExpiresDefault "access plus 3 days" # Пример. Реализация возможности настройки маршрутов прокси-сервера в данном модуле # и в данной конфигурации LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so ProxyRequests Off ProxyPass /bvstaging/ http://555.555.555.555/bvstaging/ ProxyPassReverse /bvstaging/ http://555.555.555.555/bvstaging/ # Пример. Реализация возможности использования опции Apache mod_rewrite в данном модуле LoadModule rewrite_module modules/mod_rewrite.so # Прослушивание портов 80, 443 и 8006 на машине с именем localhost Listen 0.0.0.0:80 Listen 0.0.0.0:443 Listen 0.0.0.0:8006 <VirtualHost *:80> ServerName * Alias /wcsstore "C:\IBM\WCDE_ENT70\workspace\Stores\WebContent" Alias /wcs "C:\IBM\WCDE_ENT70\workspace\Stores\WebContent" # Пример. Включение механизма перезаписывания. RewriteEngine On </VirtualHost> <VirtualHost *:443> SSLEnable SSLClientAuth 0 ServerName * Alias /wcsstore "C:\IBM\WCDE_ENT70\workspace\Stores\WebContent" Alias /wcs "C:\IBM\WCDE_ENT70\workspace\Stores\WebContent" </VirtualHost> <VirtualHost *:8006> SSLEnable SSLClientAuth 0 ServerName * Alias /wcsstore "C:\IBM\WCDE_ENT70\workspace\Stores\WebContent" Alias /wcs "C:\IBM\WCDE_ENT70\workspace\Stores\WebContent" </VirtualHost>
Вам нужно изменить строки Alias, приведя их в соответствие со своей средой. Убедитесь в том, что в вашей конфигурации нет дублирующихся строк Listen 0.0.0.0:80.
- Измените элемент DocumentRoot в соответствии с местоположением, которое вы использовали для псевдонимов в разделе /wcsstore. Примеры:
DocumentRoot "C:\IBM\WCDE_ENT70\workspace\Stores\WebContent"
- Найдите <Directory "C:/IHS/htdocs/en_US"> и измените маршрут к каталогу на местоположение, которое вы использовали для псевдонимов в разделе /wcsstore. Примеры:
<Directory "C:\IBM\WCDE_ENT70\workspace\Stores\WebContent">
- Если модуль mod_deflate.so активирован, а вы используете один и тот же веб-сервер для WebSphere Commerce и для WebSphere Commerce Search, то, возможно, вам следует деактивировать сжатие для REST-сервисов. Это временное обходное решение. Не используйте этот подход в производственной среде. Сжатие для REST-сервисов можно отключить с помощью следующего кода.
SetEnvIfNoCase Request_URI (/search/resources/) no-gzip dont-vary SetEnvIfNoCase Request_URI (/search/previewresources/) no-gzip dont-vary SetEnvIfNoCase Request_URI (/wcs/previewresources/) no-gzip dont-vary SetEnvIfNoCase Request_URI (/wcs/resources/) no-gzip dont-vary
- Сохраните файл httpd.conf.
Конфигурирование компонента IBM HTTP Server завершено. Теперь вам нужно скопировать файл plugin-config.xml, чтобы плагин WebSphere знал, какие запросы нужно отсылать в WebSphere Commerce Test Server.
В начало
Шаг 6. Копирование файла plugin-cfg.xml в каталог плагина WebSphere
Плагин для WebSphere Application Server использует конфигурационный файл plugin-config.xml
, в котором указано, какие запросы необходимо перенаправлять от компонента IBM HTTP Server к компоненту WebSphere Commerce Test Server. Вы можете использовать конфигурационный файл, который включен в Пример программного кода для этого учебного руководства и находится в каталоге плагинов. Скопируйте каталог Plugins\config в каталог C:\WebSphere\Plugins.
Возможно, вам придется изменить файл plugin-cfg.xml в соответствии со своей средой, особенно если вы изменили корневой каталог контекста WebSphere Commerce с /webapp/wcs
на другое значение.
Теперь вам нужно сконфигурировать компонент WebSphere Commerce Test Server таким образом, чтобы он поддерживал взаимодействие с компонентом IBM HTTP Server.
В начало
Шаг 7. Конфигурирование компонента WebSphere Commerce Test Server
По умолчанию сервер WebSphere Commerce Test Server прослушивает запросы на портах 80, 443 и 8006. Вы сконфигурировали компонент IBM HTTP Server на прослушивание этих портов, поэтому для устранения конфликта вам необходимо изменить компонент WebSphere Commerce Test Server так, чтобы он прослушивал другие порты. В этом учебном руководстве для замены портов 80, 443 и 8006 используются порты 10080, 10443 и 18006.
В Пример программного кода для этого учебного руководства включен Jython-скрипт wsadmin для продукта WebSphere Application Server (WAS\configureWCPorts.py
). В зависимости от имеющейся у вас конфигурации вам, возможно, придется перед запуском этого скрипта изменить разделы nodename и hostname в вышеуказанном файле. В показанном ниже скрипте используются значения для конфигурации по умолчанию.
Листинг 2. Скрипт wsadmin для изменения портов сервера Test Server
AdminTask.modifyServerPort ('server1', '[-nodeName localhost -endPointName WC_defaulthost -host localhost -port 10080 -modifyShared true]') AdminTask.modifyServerPort ('server1', '[-nodeName localhost -endPointName WC_defaulthost_secure -host localhost -port 10443 -modifyShared true]') AdminTask.modifyServerPort ('server1', '[-nodeName localhost -endPointName WC_PORT_4 -host localhost -port 18006 -modifyShared true]') AdminConfig.save()
- Убедитесь в том, что сервер WebSphere Commerce Test Server остановлен.
- Скопируйте скрипт WAS\configureWCPorts.py в каталог <WCTOOLKIT>\wasprofile\bin directory.
- Откройте командное окно Windows и измените текущий каталог на <WCTOOLKIT>\wasprofile\bin.
- Введите команду
wsadmin -lang jython -f configureWCPorts.py -conntype NONE
.
- Запустите сервер WebSphere Commerce Test Server.
- Запустите или перезапустите сервер IBM HTTP Server.
Вы можете протестировать свою конфигурацию, обратившись к своим хранилищам WebSphere Commerce из веб-браузера. Обратите внимание, что теперь запросы регистрируются в файле access.log сервера IBM HTTP Server. Это служит признаком того, что запросы на портах 80 и 443 обрабатывает сервер IBM HTTP Server. Конфигурирование сервера WebSphere Commerce Test Server для поддержки взаимодействия с сервером IBM HTTP Server завершено.
В начало
Шаг 8. Конфигурирование сертификатов сервера WebSphere
Чтобы предварительный просмотр хранилища надлежащим образом работал с REST-запросами, сервер WebSphere должен доверять сертификатам сервера HTTP Server.
- После запуска сервера WebSphere Commerce Test Server войдите в консоль WebSphere Integrated Solutions Console. Для запуска этой консоли нажмите правой кнопкой на WebSphere Commerce Test Server в инструменте RAD и выберите Administration > Run Administrative Console.
- В консоли Integrated Solutions Console раскройте Security > SSL Certificate and Key management > Key stores and certificates > NodeDefaultTrustStore > Signer certificates.
- Нажмите на кнопку Retrieve from port.
- Введите имя хоста веб-сервера и номер SSL-порта (например, 443), а затем укажите псевдоним.
- Нажмите на кнопку Retrieve signer information.
- Проверьте информацию и нажмите OK, а затем Save.
- Запустите сервер WebSphere Commerce Test Server.
Рисунок 9. Экран управления SSL-сертификатами и ключами
В начало
Заключение
В этом учебном руководстве вы установили веб-сервер IBM HTTP Server на своей машине разработки WebSphere Commerce и сконфигурировали его для обработки сетевых запросов на портах 80, 443 и 8006. Вы можете запускать и останавливать этот веб-сервер с помощью окна управления сервисами Windows. Сервис носит название IBM HTTP Server 7.0 и по умолчанию запускается автоматически при перезагрузке вашей машины. После успешного конфигурирования этих двух приложений для совместного функционирования вы сможете заметить некоторое повышение производительности. Теперь вы располагаете полнофункциональным веб-сервером. Вы можете воспользоваться такими функциями этого веб-сервера, как кэширование и перезапись, для тестирования других конфигураций в соответствии с потребностями вашего приложения.