Мои сайты
Частые вопросы
Полезные ссылки
Операционные системы
Программное обеспечение
Оборудование
СУБД
Кулинария
ПК/Сервер под управлением ОС семейства Red Hat.
На этом ПК запустить несколько экземпляров (инстансов) Apache (httpd).
В моём случае нужно опубликовать несколько баз «1С:Предприятие» на WEB-сервере. При этом на сервере 1С «крутится» несколько платформ 1С. Один инстанс Apache может работать с одной платформой 1С. Соответственно, без запуска нескольких экземпляров Apache не обойтись.
Сначала ставим Apache.
Как это сделать можно почитать тут: "Установка Apache"
Проверяем, что всё работает и останавливаем Apache.
systemctl stop httpd.service
Делаем на всякий случай резервную копию каталога /etc/httpd/ .
cp -rp /etc/httpd/ /etc/httpd.orig/
А теперь немного анализируем и планируем.
Установленный Apachе зависит от нескольких сущностей :
Соответственно, для каждого нового экземпляра Apache нужно создать свои собственные сущности.
Мне так удобнее, т.к. основной экземпляр «Сервера 1С» использует порт 1540, а дополнительный 1740.
Создаём службу httpd1540.
Для неё определим следующие параметры:
Обычным копированием создаём каталог с настройками.
cp -rp /etc/httpd.orig/ /etc/httpd1540/
Создаём каталог для размещения сайтов и настраиваем права доступа к нему.
mkdir -p /var/www/htm1540 chown -R apache:apache /var/www/htm1540 chmod -R 755 /var/www/htm1540
Обычным копированием создаём файл с описанием юнита
cp -p /usr/lib/systemd/system/httpd.service /usr/lib/systemd/system/httpd1540.service
Открываем конфигурационный файл нового сервиса.
mcedit /etc/httpd1540/conf/httpd.conf
В файле httpd.conf меняем параметры: ServerRoot, PidFile, Listen, DocumentRoot
...
ServerRoot "/etc/httpd1540"
PidFile "/etc/httpd1540/run/httpd1540.pid"
...
Listen 8080
...
DocumentRoot "/var/www/html1540"
...
<Directory "/var/www/html1540">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
Открываем конфигурационный файл с настройками SSL нового сервиса.
mcedit /etc/httpd1540/conf.d/ssl.conf
И в настройках везде порт 443 меняем на 8443
Теперь редактируем описание юнита нового сервиса
systemctl edit --full httpd1540.service
Приводим описание юнита примерно к такому виду
# See httpd.service(8) for more information on using the httpd service.
# Modifying this file in-place is not recommended, because changes
# will be overwritten during package upgrades. To customize the
# behaviour, run "systemctl edit httpd" to create an override unit.
# For example, to pass additional options (such as -D definitions) to
# the httpd binary at startup, create an override unit (as is done by
# systemctl edit) and enter the following:
# [Service]
# Environment=OPTIONS=-DMY_DEFINE
[Unit]
Description=The Apache HTTP Server for using with 1C Server 1540
Wants=httpd-init.service
After=network.target remote-fs.target nss-lookup.target httpd-init.service
Documentation=man:httpd.service(8)
[Service]
Type=notify
Environment=LANG=C
ExecStart=/usr/sbin/httpd -f /etc/httpd1540/conf/httpd.conf $OPTIONS -DFOREGROUND
ExecReload=/usr/sbin/httpd -f /etc/httpd1540/conf/httpd.conf $OPTIONS -k graceful
ExecStop=/bin/kill -WINCH ${MAINPID}
# Send SIGWINCH for graceful stop
KillSignal=SIGWINCH
KillMode=mixed
PrivateTmp=true
OOMPolicy=continue
[Install]
WantedBy=multi-user.target
Открываем порты 8080 и 8443 в межсетевом экране ====
firewall-cmd --add-port=8080/tcp --permanent firewall-cmd --add-port=8443/tcp --permanent firewall-cmd --reload
Перечитываем настройки демонов и запускаем httpd и httpd1540
systemctl daemon-reload systemctl start httpd.service systemctl start httpd1540.service
И проверяем работу нового сервиса httpd1540 открыв страничку по адресам http://ip-addr:8080/ И https://ip-addr:8443/
Здесь ip-addr - это адрес вашего сервера.
По аналогии создаём службу httpd1740.
Для неё определим следующие параметры:
Дальнейшие действия аналогичны тем, что мы выполняли на шаге 3.
Иногда такую ерунду советовал.
Но направление «в какую сторону копать» помогал найти.