Как запустить несколько экземпляров (инстансов) httpd (Apache) на разных портах сервера

Экспорт в PDF Преобразовать страницу в формат Open Document

Дата создания: 2026/02/11 14:58 (C) mihanik

Дано

ПК/Сервер под управлением ОС семейства Red Hat.

Надо

На этом ПК запустить несколько экземпляров (инстансов) Apache (httpd).

Решение

Для начала нужно понять зачем это делать.
Если можно обойтись без этого, то лучше обойтись без этого.

В моём случае нужно опубликовать несколько баз «1С:Предприятие» на WEB-сервере. При этом на сервере 1С «крутится» несколько платформ 1С. Один инстанс Apache может работать с одной платформой 1С. Соответственно, без запуска нескольких экземпляров Apache не обойтись.

Шаг 1

Сначала ставим Apache.

Как это сделать можно почитать тут: "Установка Apache"

Шаг 2

Проверяем, что всё работает и останавливаем Apache.

systemctl stop httpd.service

Делаем на всякий случай резервную копию каталога /etc/httpd/ .

cp -rp /etc/httpd/ /etc/httpd.orig/

А теперь немного анализируем и планируем.

Установленный Apachе зависит от нескольких сущностей :

  • каталог с настройками - /etc/httpd/
  • файл с описанием юнита - /etc/systemd/system/httpd.service
  • каталог для размещения сайтов - /var/www/html/
  • «слушаемые порты» - 80 и 443 tcp/ip

Соответственно, для каждого нового экземпляра Apache нужно создать свои собственные сущности.

Для определённости договоримся, что новые экземпляры httpd будут иметь имена httpd1540 и httpd1740.

Мне так удобнее, т.к. основной экземпляр «Сервера 1С» использует порт 1540, а дополнительный 1740.

Шаг 3

Создаём службу httpd1540.

Для неё определим следующие параметры:

  • каталог с настройками - /etc/httpd1540/
  • файл с описанием юнита - /etc/systemd/system/httpd1540.service
  • каталог для размещения сайтов - /var/www/html1540/
  • «слушаемые порты» - 8080 и 8443 tcp/ip

Обычным копированием создаём каталог с настройками.

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

httpd.conf
...
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

Приводим описание юнита примерно к такому виду

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 - это адрес вашего сервера.

Шаг 4

По аналогии создаём службу httpd1740.

Для неё определим следующие параметры:

  • каталог с настройками - /etc/httpd1740/
  • файл с описанием юнита - /etc/systemd/system/httpd1740.service
  • каталог для размещения сайтов - /var/www/html1740/
  • «слушаемые порты» - 8082 и 8445 tcp/ip

Дальнейшие действия аналогичны тем, что мы выполняли на шаге 3.

Источники

  • Просторы интернета
  • Общение с ИИ
ИИ - такой выдумщик!!!

Иногда такую ерунду советовал. :-)

Но направление «в какую сторону копать» помогал найти.

Наверх

В моей WIKI постоянно ведётся какая-то работа со статьями.
Если у вас возникли вопросы или замечания,
можете их отправлять на почту support@mihanik.net
Только авторизованные участники могут оставлять комментарии.
web-серверы_и_движки/apache/как_запустить_несколько_инстансов_httpd_apache_на_разных_портах.txt · Последнее изменение: 2026/02/13 08:01 — mihanik · В данный момент заблокировано пользователем mihanik
Яндекс.Метрика