45.52
Rating
InterSystems
InterSystems IRIS: СУБД, ESB, BI, Healthcare
29 April 2014

Настройка Apache для работы с СУБД Caché на Linux

InterSystems corporate blog
Tutorial
Вообще говоря, в поставку InterSystems Caché входит встроенный веб-сервер Apache. Встроенный сервер предназначен для разработки и администрирования инстанса Caché и собран с некоторыми ограничениями. Существуют рецепты по устранению этих ограничений, но более общий подход — использовать для продакшена полноценный веб-сервер. В статье рассмотрена настройка Apache для работы с Caché и организация https доступа. Все действия выполнялись на Ubuntu, но настройка на других Linux дистрибутивах ничем принципиально не отличается.

Выбираем Apache

Считаем, что Caché у вас уже установлена в каталог /InterSystems/Cache (как установить Caché на Linux читаем здесь).
Caché поставляется вместе с модулем для Apache, идём в папку /InterSystems/Cache/csp/bin и находим там один из файлов модулей:
  • CSPa22.so (Apache Version 2.2.x)
  • CSPa24.so (Apache Version 2.4.x)
  • CSPa20.so (Apache Version 2.0.x)
  • CSPa.so (Apache Version 1.3.x)

Теперь нужно установить Apache. Ищем подходящий репозиторий на сайте, например для CSPa24.so нужна любая версия 2.4.x, а репозиторий http://ru.archive.ubuntu.com/ubuntu/ saucy main содержит Apache версии 2.4.6. Добавляем его в лист репозиториев:
nano /etc/apt/sources.list
deb http://ru.archive.ubuntu.com/ubuntu/ saucy main

Обновляем список пакетов:
apt-get update

Установка Apache


Устанавливаем Apache, для этого добавляем необходимые пакеты:
 apt-get install apache2 zlib1g-dev

После установки убедитесь, что установленная версия Apache соответствует ожиданиям:
apache2 -v

Также надо убедиться, что в списке модулей Apache есть mod_so, список модулей выводится с помощью:
apache2 -l

Итак, Apache установлен и работает. Для проверки наберите в адресной строке браузера ip сервера — должна появиться страница, выглядящая примерно так:


Соединяем Caché и Apache


Для это нам нужно изменить конфигурацию Apache. Редактируем файлы:
  • /etc/apache2/envvars — содержит переменные окружения. Устанавливаем значения переменных APACHE_RUN_USER и APACHE_RUN_GROUP равными cacheusr
  • /etc/apache2/apache2.conf — основной файл конфигурации. Добавляем строчки в разделе конфигурации модулей (module configuration)
    CSPModulePath /InterSystems/Cache/csp/bin/
    LoadModule csp_module_sa /InterSystems/Cache/csp/bin/CSPa24.so
    AddHandler csp-handler-sa csp cls cxw zen
    

  • /etc/apache2/sites-enabled/000-default.conf — конфигурация сайта.
    <VirtualHost *:80>
        ServerName cachesys
        DocumentRoot "/InterSystems/Cache/csp"
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        LogLevel debug
        <Location />
            CSP On
            SetHandler csp-handler-sa
        </Location>
        <Location "/csp/bin/Systems/">
            SetHandler csp-handler-sa
        </Location>
        <Location "/csp/bin/RunTime/">
            SetHandler csp-handler-sa
        </Location>
        DirectoryIndex  index.csp index.php index.html index.htm
    </VirtualHost>
    


Перезапускаем Apache:
service apache2 restart

Теперь по адресу http://<ip>/csp/sys/UtilHome.csp должен открываться портал управления системой:


SSL


Далее добавим возможность подключаться используя ssl. Для этого сгенерируем сертификат сервера, подпишем его сами (не рекомендуется) или у CA. Очень подробный гайд здесь или здесь
В итоге, у нас есть 3 файла: приватный ключ сервера, сертификат сервера и сертификат CA.
Добавляем модуль ssl в Apache:
a2enmod ssl

Создаем файл с конфигурацией сайта: etc/apache2/sites-enabled/001-ssl.conf и добавляем в него:
<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
    ServerName <Server Certificate commonName>
    DocumentRoot /InterSystems/Cache/csp
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    <Location />
        CSP On
        SetHandler csp-handler-sa
    </Location>
    <Location "/csp/bin/Systems/">
        SetHandler csp-handler-sa
    </Location>
    <Location "/csp/bin/RunTime/">
        SetHandler csp-handler-sa
    </Location>
    DirectoryIndex  index.csp index.php index.html index.htm

    SSLEngine on
    SSLCertificateKeyFile /InterSystems/Cache/mgr/SSLcert/server_key.pem
    SSLCertificateFile    /InterSystems/Cache/mgr/SSLcert/server_crt.crt
    SSLCACertificateFile  /InterSystems/Cache/mgr/SSLcert/cacert.crt
    SSLVerifyDepth  10
    SSLCipherSuite  TLSv1:SSLv3:!ADH:!LOW:!EXP:@STRENGTH
    SSLOptions +StdEnvVars
    DirectoryIndex index.csp index.php index.html index.htm
    </VirtualHost>
</IfModule>

Server Name должно соответствовать параметру commonName в сертификате сервера, также нужно указать корректные пути файлов ключа сервера, сертификата сервера и сертификата CA — SSLCertificateKeyFile, SSLCertificateFile, SSLCACertificateFile соответственно.
Перезапускаем Apache:
service apache2 restart

Теперь по адресу https://<ip>/csp/sys/UtilHome.csp должен открываться портал управления системой:


Полезные ссылки


Файлы конфигурации Apache
Документация Caché
Caché и Apache
Caché и Apache под Windows
Caché и SSL
Tags:intersystems cacheintersystemscacheapachesslhttps
Hubs: InterSystems corporate blog
+4
4.7k 27
Comments 6
Information
Founded

1 January 1978

Location

США

Employees

1,001–5,000 employees

Registered

7 January 2012

Habr blog