How to run two instances of apache on same system (Ubuntu)
RunningMultipleApacheInstances
пример настройки виртуальных хостов
Задача есть сервер с нескольким кластерами 1с разных версий.
Нужно запустить несколько экземпляров Apache (на разных портах) и опубликовать базы 1с.
Первый сервер 1с на стандартных портах и путях (стандартная установка)
$ dpkg -l | grep 1c
ii 1c-enterprise83-common 8.3.17-1386 amd64 1C:Enterprise 8.3 common components
ii 1c-enterprise83-server 8.3.17-1386 amd64 1C:Enterprise 8.3 server for Linux
ii 1c-enterprise83-ws 8.3.17-1386 amd64 1C:Enterpise 8.3 Web-services components for Linux
$ hostname
u2004
#sudo ufw disable
sudo apt-get install apache2 -y
#Описание:
cat /usr/share/doc/apache2/README.multiple-instances
#Подключаем worker
sudo apachectl -V | grep -i mpm
#Server MPM: event
#Отключаем mpm_event
sudo a2dismod mpm_event
#Подключаем worker
sudo a2enmod mpm_worker
sudo service apache2 restart
sudo apachectl -V | grep -i mpm
#Server MPM: worker
#файлы /etc/apache2/ будут использоваться в дальнейшем в качестве шаблона для
#для других экземпляров, поэтому
#Остановим сервер:
sudo systemctl stop apache2
#Выключим автозапуск:
sudo systemctl disable apache2
#Создадим 1 экземпляр apache web1
sudo sh /usr/share/doc/apache2/examples/setup-instance web1
#Запустим:
sudo systemctl start apache2@web1
#Поставим автозапуск:
sudo systemctl enable apache2@web1
http://u2004
#Подключаем базу demo в кластере на стандартных портах 1с
#Создаем директорию для vrd-файла:
sudo mkdir -p /var/www/ib/demo
#А также файл конфигурации Apache:
sudo touch /etc/apache2-web1/conf-available/demo.conf
#Переходим в каталог со утилитой публикации веб-клиента (стандартное расположение):
cd /opt/1C/v8.3/x86_64/
Запускаем утилиту публикации базы 1с:
sudo ./webinst -apache24 -wsdir demo -dir '/var/www/ib/demo' -connstr 'Srvr="u2004";Ref="demo";' -confPath /etc/apache2-web1/conf-available/demo.conf
Где
u2004 - адрес сервера 1С:Предпрятие,
#Публикация выполнена
#Проверяем модуль wsap24.so должен быть правильно расположен, в данном случае #стандартный путь:
cat /etc/apache2-web1/conf-available/demo.conf
#LoadModule _1cws_module "/opt/1C/v8.3/x86_64/wsap24.so"
#Подключаем конфигурацию:
sudo a2enconf-web1 demo
#Отключаем конфигурацию:
#sudo a2disconf-web1 demo #не сейчас
#Перезагрузка Apache:
sudo systemctl reload apache2@web1.service
sudo systemctl restart apache2@web1.service
sudo systemctl status apache2@web1.service
#Смотрим:
http://u2004/demo/ru_RU/
grep "_1cws_module" -rI /etc/apache2-web1
/etc/apache2-web1/conf-available/demo.conf:LoadModule _1cws_module "/opt/1C/v8.3/x86_64/wsap24.so"
По аналогии можем подключать другие базы
=================================================================
#Установка второго сервера 1c
cd setup-1c/scripts
./dl-1c-8.3.16.1148.sh
nano setup-add.sh
#Корректируем:
#!/bin/bash
set -e
echo "Предполагаем что на стандартных портах установлен сервер 1с и зависимости"
echo "Создание множества серверов 1с на заданных портах с шагом 100 начиная с 1700"
export VERSION=8.3.16.1148
# ./build-add.sh имя порт
./build-add.sh srv1 1700
# ./build-add.sh srv2 1800
# ./build-add.sh srv3 1900
# ./build-add.sh srv4 2000
# ./build-add.sh srv5 2100
# ./build-add.sh srv6 2200
# ./build-add.sh srv7 2300
# ./build-add.sh srv8 2400
# ./build-add.sh srv9 2500
systemctl list-unit-files | grep 8.3.
#Сохранить.
./setup-add.sh
.....
Created symlink /etc/systemd/system/multi-user.target.wants/srv1-8.3.16.1148.service → /etc/systemd/system/srv1-8.3.16.1148.service.
Created symlink /etc/systemd/system/multi-user.target.wants/srv1-8.3.16.1148-ras.service → /etc/systemd/system/srv1-8.3.16.1148-ras.service.
srv1-8.3.16.1148
PORT=1740
REGPORT=1741
RANGE=1760:1790
RASPORT=1745
sudo systemctl status srv1-8.3.16.1148.service
sudo systemctl status srv1-8.3.16.1148-ras.service
sudo systemctl stop srv1-8.3.16.1148-ras.service
sudo systemctl stop srv1-8.3.16.1148.service
sudo systemctl start srv1-8.3.16.1148.service
sudo systemctl start srv1-8.3.16.1148-ras.service
----------------------------------------
srv1-8.3.16.1148-ras.service enabled enabled
srv1-8.3.16.1148.service enabled enabled
sudo ufw enable
#Создадим 2 экземпляр apache web2
sudo sh /usr/share/doc/apache2/examples/setup-instance web2
#Изменим порт на 81:
sudo nano /etc/apache2-web2/ports.conf
#Listen 80
Listen 81
Сохранить.
-------------------------------------
не делаем, если не используем виртуальные сервера!!!
http://u2004:81/test/ru_RU/
#Изменим порт на 81:
#sudo nano /etc/apache2-web2/sites-available/000-default.conf
#<VirtualHost *:80>
<VirtualHost *:81>
-------------------------------------
Сохранить.
#Запустим:
sudo systemctl start apache2@web2
#Поставим автозапуск:
sudo systemctl enable apache2@web2
http://u2004:81/
#Подключаем базу test в кластере на не стандартных портах 1с
#Создаем директорию для vrd-файла:
sudo mkdir -p /var/www/ib/test
#А также файл конфигурации Apache:
sudo touch /etc/apache2-web2/conf-available/test.conf
#Переходим в каталог со утилитой публикации веб-клиента (нестандартное расположение):
cd /opt/1C/v8.3.16.1148/x86_64/
Запускаем утилиту публикации базы 1с:
sudo ./webinst -apache24 -wsdir test -dir '/var/www/ib/test' -connstr 'Srvr="u2004:1741";Ref="test";' -confPath /etc/apache2-web2/conf-available/test.conf
Где
u2004:1741 - адрес сервера 1С:Предпрятие,
#Публикация выполнена
#Проверяем модуль wsap24.so должен быть правильно расположен, в данном случае #стандартный путь:
cat /etc/apache2-web2/conf-available/test.conf
LoadModule _1cws_module "/opt/1C/v8.3.16.1148/x86_64/wsap24.so"
#Подключаем конфигурацию:
sudo a2enconf-web2 test
#Отключаем конфигурацию:
#sudo a2disconf-web2 test #не сейчас
#Перезагрузка Apache:
sudo systemctl reload apache2@web2.service
sudo systemctl restart apache2@web2.service
sudo systemctl status apache2@web2.service
#Смотрим:
http://u2004:81/test/ru_RU/
grep "_1cws_module" -rI /etc/apache2-web2
/etc/apache2-web2/conf-available/test.conf:LoadModule _1cws_module "/opt/1C/v8.3.16.1148/x86_64/wsap24.so"
По аналогии можем подключать другие базы
=====================================================================
Аналогично делаем другие экземпляры
RunningMultipleApacheInstances
пример настройки виртуальных хостов
Задача есть сервер с нескольким кластерами 1с разных версий.
Нужно запустить несколько экземпляров Apache (на разных портах) и опубликовать базы 1с.
Первый сервер 1с на стандартных портах и путях (стандартная установка)
$ dpkg -l | grep 1c
ii 1c-enterprise83-common 8.3.17-1386 amd64 1C:Enterprise 8.3 common components
ii 1c-enterprise83-server 8.3.17-1386 amd64 1C:Enterprise 8.3 server for Linux
ii 1c-enterprise83-ws 8.3.17-1386 amd64 1C:Enterpise 8.3 Web-services components for Linux
$ hostname
u2004
#sudo ufw disable
sudo apt-get install apache2 -y
#Описание:
cat /usr/share/doc/apache2/README.multiple-instances
#Подключаем worker
sudo apachectl -V | grep -i mpm
#Server MPM: event
#Отключаем mpm_event
sudo a2dismod mpm_event
#Подключаем worker
sudo a2enmod mpm_worker
sudo service apache2 restart
sudo apachectl -V | grep -i mpm
#Server MPM: worker
#файлы /etc/apache2/ будут использоваться в дальнейшем в качестве шаблона для
#для других экземпляров, поэтому
#Остановим сервер:
sudo systemctl stop apache2
#Выключим автозапуск:
sudo systemctl disable apache2
#Создадим 1 экземпляр apache web1
sudo sh /usr/share/doc/apache2/examples/setup-instance web1
#Запустим:
sudo systemctl start apache2@web1
#Поставим автозапуск:
sudo systemctl enable apache2@web1
http://u2004
#Подключаем базу demo в кластере на стандартных портах 1с
#Создаем директорию для vrd-файла:
sudo mkdir -p /var/www/ib/demo
#А также файл конфигурации Apache:
sudo touch /etc/apache2-web1/conf-available/demo.conf
#Переходим в каталог со утилитой публикации веб-клиента (стандартное расположение):
cd /opt/1C/v8.3/x86_64/
Запускаем утилиту публикации базы 1с:
sudo ./webinst -apache24 -wsdir demo -dir '/var/www/ib/demo' -connstr 'Srvr="u2004";Ref="demo";' -confPath /etc/apache2-web1/conf-available/demo.conf
Где
/var/www/ib/demo
- директория где будет создан vrd-файл,
demo
- имя ИБ,u2004 - адрес сервера 1С:Предпрятие,
/etc/apache2
-web1/conf-available/demo.conf
- путь до конфигурационного файла Apache.#Публикация выполнена
#Проверяем модуль wsap24.so должен быть правильно расположен, в данном случае #стандартный путь:
cat /etc/apache2-web1/conf-available/demo.conf
#LoadModule _1cws_module "/opt/1C/v8.3/x86_64/wsap24.so"
#Подключаем конфигурацию:
sudo a2enconf-web1 demo
#Отключаем конфигурацию:
#sudo a2disconf-web1 demo #не сейчас
#Перезагрузка Apache:
sudo systemctl reload apache2@web1.service
sudo systemctl restart apache2@web1.service
sudo systemctl status apache2@web1.service
#Смотрим:
http://u2004/demo/ru_RU/
grep "_1cws_module" -rI /etc/apache2-web1
/etc/apache2-web1/conf-available/demo.conf:LoadModule _1cws_module "/opt/1C/v8.3/x86_64/wsap24.so"
По аналогии можем подключать другие базы
=================================================================
#Установка второго сервера 1c
git clone https://gitlab...
cd setup-1c/scripts
./dl-1c-8.3.16.1148.sh
nano setup-add.sh
#Корректируем:
#!/bin/bash
set -e
echo "Предполагаем что на стандартных портах установлен сервер 1с и зависимости"
echo "Создание множества серверов 1с на заданных портах с шагом 100 начиная с 1700"
export VERSION=8.3.16.1148
# ./build-add.sh имя порт
./build-add.sh srv1 1700
# ./build-add.sh srv2 1800
# ./build-add.sh srv3 1900
# ./build-add.sh srv4 2000
# ./build-add.sh srv5 2100
# ./build-add.sh srv6 2200
# ./build-add.sh srv7 2300
# ./build-add.sh srv8 2400
# ./build-add.sh srv9 2500
systemctl list-unit-files | grep 8.3.
#Сохранить.
./setup-add.sh
.....
Created symlink /etc/systemd/system/multi-user.target.wants/srv1-8.3.16.1148.service → /etc/systemd/system/srv1-8.3.16.1148.service.
Created symlink /etc/systemd/system/multi-user.target.wants/srv1-8.3.16.1148-ras.service → /etc/systemd/system/srv1-8.3.16.1148-ras.service.
srv1-8.3.16.1148
PORT=1740
REGPORT=1741
RANGE=1760:1790
RASPORT=1745
sudo systemctl status srv1-8.3.16.1148.service
sudo systemctl status srv1-8.3.16.1148-ras.service
sudo systemctl stop srv1-8.3.16.1148-ras.service
sudo systemctl stop srv1-8.3.16.1148.service
sudo systemctl start srv1-8.3.16.1148.service
sudo systemctl start srv1-8.3.16.1148-ras.service
----------------------------------------
srv1-8.3.16.1148-ras.service enabled enabled
srv1-8.3.16.1148.service enabled enabled
sudo ufw enable
#Загрузим базу.
sudo sh /usr/share/doc/apache2/examples/setup-instance web2
#Изменим порт на 81:
sudo nano /etc/apache2-web2/ports.conf
#Listen 80
Listen 81
Сохранить.
-------------------------------------
не делаем, если не используем виртуальные сервера!!!
http://u2004:81/test/ru_RU/
#Изменим порт на 81:
#sudo nano /etc/apache2-web2/sites-available/000-default.conf
#<VirtualHost *:80>
<VirtualHost *:81>
-------------------------------------
Сохранить.
#Запустим:
sudo systemctl start apache2@web2
#Поставим автозапуск:
sudo systemctl enable apache2@web2
http://u2004:81/
#Подключаем базу test в кластере на не стандартных портах 1с
#Создаем директорию для vrd-файла:
sudo mkdir -p /var/www/ib/test
#А также файл конфигурации Apache:
sudo touch /etc/apache2-web2/conf-available/test.conf
#Переходим в каталог со утилитой публикации веб-клиента (нестандартное расположение):
cd /opt/1C/v8.3.16.1148/x86_64/
Запускаем утилиту публикации базы 1с:
sudo ./webinst -apache24 -wsdir test -dir '/var/www/ib/test' -connstr 'Srvr="u2004:1741";Ref="test";' -confPath /etc/apache2-web2/conf-available/test.conf
Где
/var/www/ib/test
- директория где будет создан vrd-файл,
test
- имя ИБ,u2004:1741 - адрес сервера 1С:Предпрятие,
/etc/apache2
-web2/conf-available/test.conf
- путь до конфигурационного файла Apache.#Публикация выполнена
#Проверяем модуль wsap24.so должен быть правильно расположен, в данном случае #стандартный путь:
cat /etc/apache2-web2/conf-available/test.conf
LoadModule _1cws_module "/opt/1C/v8.3.16.1148/x86_64/wsap24.so"
#Подключаем конфигурацию:
sudo a2enconf-web2 test
#Отключаем конфигурацию:
#sudo a2disconf-web2 test #не сейчас
#Перезагрузка Apache:
sudo systemctl reload apache2@web2.service
sudo systemctl restart apache2@web2.service
sudo systemctl status apache2@web2.service
#Смотрим:
http://u2004:81/test/ru_RU/
grep "_1cws_module" -rI /etc/apache2-web2
/etc/apache2-web2/conf-available/test.conf:LoadModule _1cws_module "/opt/1C/v8.3.16.1148/x86_64/wsap24.so"
По аналогии можем подключать другие базы
=====================================================================
Аналогично делаем другие экземпляры
=====================================================================
Спасибо тебе, Добрый человек!!!
ОтветитьУдалитьеще бы nginx с сертификатом и на одном порту чтобы все было
ОтветитьУдалитьСпасибо за статью! Искал способ опубликовать базы на разных платформах, теперь понял как запустить два экземпляра апача.
ОтветитьУдалить