Пишу для себя, чтобы не забыть как делал. 95 % рабочее. На комментарии отвечаю, когда увижу.
воскресенье, 31 мая 2020 г.
вторник, 12 мая 2020 г.
Установка stunnel для apache вебсервера 1С:Предпритие 8.3 Ubuntu 20.04 с авторизацией
Установка stunnel4 на сервере Ubuntu 20.04:
sudo apt install stunnel4 -yНам нужны пары сертификат/ключ для сервера и каждого клиента.
Для сервера:
sudo openssl genrsa -out /etc/stunnel/server-key.pem 2048
sudo openssl req -new -x509 -key /etc/stunnel/server-key.pem -out /etc/stunnel/server-cert.pem -days 36500
##sudo su -c "cat /etc/stunnel/key.pem /etc/stunnel/cert.pem >> /etc/stunnel/stunnel.pem"
Создадим пару для клиента client01:
sudo openssl genrsa -out /etc/stunnel/client01-key.pem 2048
sudo openssl req -new -x509 -key /etc/stunnel/client01-key.pem -out /etc/stunnel/client01-cert.pem -days 36500
sudo su -c "cat /etc/stunnel/client01-cert.pem >> /etc/stunnel/clients.pem"
Файлы client01-cert.pem client01-key.pem server-cert.pem
скопируем на машину с клиентом client01 (windows)
Создадим еще пару для клиента client02:
sudo openssl genrsa -out /etc/stunnel/client02-key.pem 2048
sudo openssl req -new -x509 -key /etc/stunnel/client02-key.pem -out /etc/stunnel/client02-cert.pem -days 36500
sudo su -c "cat /etc/stunnel/client02-cert.pem >> /etc/stunnel/clients.pem"
И т.д.
На сервере настриваем (ниже):accept = 4443 - порт на сервере который нужно открыть во внешнюю сеть или пробросить
connect = 127.0.0.1:80 - 80 порт вебсервера от которого строим туннель tls
sudo nano /etc/stunnel/stunnel.conf
chroot = /var/lib/stunnel4
pid = /stunnel4.pid
output = /stunnel.log
setuid = stunnel4
setgid = stunnel4
# performance tunning
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
;Отключим отладочные режимы - 0
;debug = 7
#cert = /etc/stunnel/stunnel.pem
; Проверка сертификата. 0 - не проверять, 1 - проверять при наличии, 2 - проверять всегда, ...
verify = 2
cert = /etc/stunnel/server-cert.pem
key = /etc/stunnel/server-key.pem
CAfile = /etc/stunnel/clients.pem
#Полностью отключим уязвимые протоколы SSL версии 2 и 3.
options = NO_SSLv2
options = NO_SSLv3
options = NO_TLSv1
options = NO_TLSv1.1
ciphers = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384
[apache]
accept = 4443
connect = 127.0.0.1:80
Сохранить
Штатный запуск:
sudo su -c "echo 'ENABLED=1' >> /etc/default/stunnel4"
Можно проверить:
cat /etc/default/stunnel4
.....
ENABLED=1
==========================================
Можно просто:
sudo reboot
==========================================
или без перезагрузки:
sudo systemctl enable stunnel4.service
sudo systemctl start stunnel4.service
==========================================
sudo systemctl status stunnel4.service
Лог в chroot /var/lib/stunnel4/stunnel.log
Установка stunnel4 на клиенте (Windows):
---------------------------------------------------------------------------------------------------------------------------
Установка stunnel под windows
download stunnel
stunnel-5.56-win64-installer.exe
Все версии 32 и 64 здесь
1. Установить stunnel-5.56-win64-installer.exe
(для 32 бит stunnel-5.49-win32-installer.exe )
Подключаться к 1с будем 127.0.0.1:8080
К серверу по внешнему ip 192.168.1.233:4443 через интернет.
2. Скопировать с сервера сертификат:
/etc/stunnel/stunnel.pem
в
c:\Program Files (x86)\stunnel\config\stunnel.pem
3. Настройить stunnel.conf
(все строки можно удалить)
c:\Program Files (x86)\stunnel\config\stunnel.conf
cert = client01-cert.pem
key = client01-key.pem
CAfile = server-cert.pem
client = yes
; Проверка сертификата. 0 - не проверять, 1 - проверять при наличии, 2 - проверять всегда, ...
verify = 2
[apache]
accept = 127.0.0.1:8080
connect = 192.168.1.233:4443
Сохранить.
Есть ярлык, установить службу:
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -install
Есть ярлык, запустить службу:
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -start
Проверить:
http://localhost:8080/demo/ru_RU/
Прочие команды.
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -start
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -stop
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -install
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -uninstall
==========================================
Альтернативный вариант с systemd не делаем!
sudo nano /lib/systemd/system/stunnel.service
[Unit]
Description=SSL tunnel
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
Alias=stunnel.target
[Service]
Type=forking
ExecStart=/usr/bin/stunnel /etc/stunnel/stunnel.conf
ExecStop=/usr/bin/pkill stunnel
WorkingDirectory=/etc/stunnel
TimeoutSec=600
Restart=always
PrivateTmp=false
Сохранить.
sudo systemctl enable stunnel.service
sudo systemctl start stunnel.service
sudo systemctl status stunnel.service
воскресенье, 10 мая 2020 г.
Установка stunnel для apache вебсервера 1С:Предпритие 8.3 Ubuntu 20.04
Stunnel + OpenVPN Server on Ubuntu 18.04
Авторизация для stunnel с помощью сертификатов openvpn
sudo openssl genrsa -out /etc/stunnel/key.pem 2048
sudo openssl req -new -x509 -key /etc/stunnel/key.pem -out /etc/stunnel/cert.pem -days 3650
sudo su -c "cat /etc/stunnel/key.pem /etc/stunnel/cert.pem >> /etc/stunnel/stunnel.pem"
Фйайл /etc/stunnel/stunnel.pem скачаваем для установки на клиента
sudo chmod 600 /etc/stunnel/stunnel.pem
sudo rm /etc/stunnel/key.pem /etc/stunnel/cert.pem
На сервере настриваем (ниже):
accept = 4443 - порт на сервере который нужно открыть во внешнюю сеть или пробросить
connect = 127.0.0.1:80 - 80 порт вебсервера от которого строим туннель tls
sudo nano /etc/stunnel/stunnel.conf
chroot = /var/lib/stunnel4
pid = /stunnel4.pid
output = /stunnel.log
setuid = stunnel4
setgid = stunnel4
# performance tunning
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
#Отключим отладочные режимы - 0
#debug = 7
cert = /etc/stunnel/stunnel.pem
#Полностью отключим уязвимые протоколы SSL версии 2 и 3.
options = NO_SSLv2
options = NO_SSLv3
options = NO_TLSv1
options = NO_TLSv1.1
ciphers = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384
[apache]
accept = 4443
connect = 127.0.0.1:80
Сохранить
Штатный запуск:
sudo su -c "echo 'ENABLED=1' >> /etc/default/stunnel4"
Можно проверить:
cat /etc/default/stunnel4
.....
ENABLED=1
==========================================
Можно просто:
sudo reboot
==========================================
или без перезагрузки:
sudo systemctl enable stunnel4.service
sudo systemctl start stunnel4.service
==========================================
sudo systemctl status stunnel4.service
Лог в chroot /var/lib/stunnel4/stunnel.log
---------------------------------------------------------------------------------------------------------------------------
Установка stunnel под windows
download stunnel
stunnel-5.56-win64-installer.exe
Все версии 32 и 64 здесь
1. Установить stunnel-5.56-win64-installer.exe
(для 32 бит stunnel-5.49-win32-installer.exe )
Подключаться к 1с будем 127.0.0.1:8080
К серверу по внешнему ip 192.168.1.233:4443 через интернет.
2. Скопировать с сервера сертификат:
/etc/stunnel/stunnel.pem
в
c:\Program Files (x86)\stunnel\config\stunnel.pem
3. Настройить stunnel.conf
(все строки можно удалить)
c:\Program Files (x86)\stunnel\config\stunnel.conf
cert = stunnel.pem
client = yes
[apache]
accept = 127.0.0.1:8080
connect = 192.168.1.233:4443
Сохранить.
Есть ярлык, установить службу:
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -install
Есть ярлык, запустить службу:
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -start
Проверить:
http://localhost:8080/demo/ru_RU/
Прочие команды.
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -start
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -stop
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -install
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -uninstall
==========================================
Альтернативный вариант с systemd не делаем!
sudo nano /lib/systemd/system/stunnel.service
[Unit]
Description=SSL tunnel
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
Alias=stunnel.target
[Service]
Type=forking
ExecStart=/usr/bin/stunnel /etc/stunnel/stunnel.conf
ExecStop=/usr/bin/pkill stunnel
WorkingDirectory=/etc/stunnel
TimeoutSec=600
Restart=always
PrivateTmp=false
Сохранить.
sudo systemctl enable stunnel.service
sudo systemctl start stunnel.service
sudo systemctl status stunnel.service
==========================================
Авторизация для stunnel с помощью сертификатов openvpn
Установка stunnel4 на сервере Ubuntu 20.04:
sudo apt install stunnel4 -ysudo openssl genrsa -out /etc/stunnel/key.pem 2048
sudo openssl req -new -x509 -key /etc/stunnel/key.pem -out /etc/stunnel/cert.pem -days 3650
sudo su -c "cat /etc/stunnel/key.pem /etc/stunnel/cert.pem >> /etc/stunnel/stunnel.pem"
Фйайл /etc/stunnel/stunnel.pem скачаваем для установки на клиента
sudo chmod 600 /etc/stunnel/stunnel.pem
sudo rm /etc/stunnel/key.pem /etc/stunnel/cert.pem
На сервере настриваем (ниже):
accept = 4443 - порт на сервере который нужно открыть во внешнюю сеть или пробросить
connect = 127.0.0.1:80 - 80 порт вебсервера от которого строим туннель tls
sudo nano /etc/stunnel/stunnel.conf
chroot = /var/lib/stunnel4
pid = /stunnel4.pid
output = /stunnel.log
setuid = stunnel4
setgid = stunnel4
# performance tunning
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
#Отключим отладочные режимы - 0
#debug = 7
cert = /etc/stunnel/stunnel.pem
#Полностью отключим уязвимые протоколы SSL версии 2 и 3.
options = NO_SSLv2
options = NO_SSLv3
options = NO_TLSv1
options = NO_TLSv1.1
ciphers = ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384
[apache]
accept = 4443
connect = 127.0.0.1:80
Сохранить
Штатный запуск:
sudo su -c "echo 'ENABLED=1' >> /etc/default/stunnel4"
Можно проверить:
cat /etc/default/stunnel4
.....
ENABLED=1
==========================================
Можно просто:
sudo reboot
==========================================
или без перезагрузки:
sudo systemctl enable stunnel4.service
sudo systemctl start stunnel4.service
==========================================
sudo systemctl status stunnel4.service
Лог в chroot /var/lib/stunnel4/stunnel.log
Установка stunnel4 на клиенте (Windows):
---------------------------------------------------------------------------------------------------------------------------
Установка stunnel под windows
download stunnel
stunnel-5.56-win64-installer.exe
Все версии 32 и 64 здесь
1. Установить stunnel-5.56-win64-installer.exe
(для 32 бит stunnel-5.49-win32-installer.exe )
Подключаться к 1с будем 127.0.0.1:8080
К серверу по внешнему ip 192.168.1.233:4443 через интернет.
2. Скопировать с сервера сертификат:
/etc/stunnel/stunnel.pem
в
c:\Program Files (x86)\stunnel\config\stunnel.pem
3. Настройить stunnel.conf
(все строки можно удалить)
c:\Program Files (x86)\stunnel\config\stunnel.conf
cert = stunnel.pem
client = yes
[apache]
accept = 127.0.0.1:8080
connect = 192.168.1.233:4443
Сохранить.
Есть ярлык, установить службу:
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -install
Есть ярлык, запустить службу:
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -start
Проверить:
http://localhost:8080/demo/ru_RU/
Прочие команды.
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -start
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -stop
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -install
"C:\Program Files (x86)\stunnel\bin\stunnel.exe" -uninstall
==========================================
Альтернативный вариант с systemd не делаем!
sudo nano /lib/systemd/system/stunnel.service
[Unit]
Description=SSL tunnel
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
Alias=stunnel.target
[Service]
Type=forking
ExecStart=/usr/bin/stunnel /etc/stunnel/stunnel.conf
ExecStop=/usr/bin/pkill stunnel
WorkingDirectory=/etc/stunnel
TimeoutSec=600
Restart=always
PrivateTmp=false
Сохранить.
sudo systemctl enable stunnel.service
sudo systemctl start stunnel.service
sudo systemctl status stunnel.service
==========================================
суббота, 9 мая 2020 г.
Файловый backup 1c
1c_backup.bat
@echo off
REM скрипт архивирующий папку с базами 1с файлы *.1CD
REM BASEDIR путь к папке где лежат базы 1С , если русскими буквами имя папки DOS dir /x
REM SET BASEDIR=D:\1CBases
REM CALL c:\Apache24\bin\httpd.exe -k stop
SET BASEDIR=c:\V8
REM BACKUPDIR путь к папке куда будем складывать backup
SET BACKUPDIR=f:\backup
REM удаление архивов старше DAY дней
SET DAY=5
REM del /F /Q "%BACKUPDIR%"\
REM forfiles /p %BACKUPDIR% /m *.7z /s /d -%DAY% /c "cmd /c del @path /q"
forfiles /p %BACKUPDIR% /m * /s /d -%DAY% /c "cmd /c del @path /q"
REM PASSWORD пароль для архива
REM SET PASSWORD=VZZETcB1eItOc4HU1RQljWqSeymsM6ZVenvXObU1F5oKM3GLTr96K
REM пароль до 20 символов совместим с rar
SET PASSWORD=VZZETcB1eI
REM NAME имя файла с архивом
SET NAME=backup
SET datetimef=%date:~-4%_%date:~3,2%_%date:~0,2%_%time:~0,2%_%time:~3,2%_%time:~6,2%
SET datetimef=%datetimef: =0%
SET FILENAME=%BACKUPDIR%\%NAME%_%datetimef%.7z
SET LOG=%BACKUPDIR%\%NAME%_%datetimef%.log
REM CALL c:\7-zip\7za.exe a %FILENAME% -mmt2 -mx1 -t7z -v2000m -bso1 %BASEDIR%\*\*.1CD -p%PASSWORD% >%LOG% 2>&1
CALL c:\7-zip\7za.exe a %FILENAME% -mmt2 -mx1 -t7z -v2000m -bso1 %BASEDIR%\*\*.1CD >%LOG% 2>&1
REM CALL c:\Apache24\bin\httpd.exe -k start
REM cd f:\rclone
REM rclone copy f:/backup webdav:backup_1c --progress --config rclone.conf
rclone sync f:/backup webdav:backup_1c --progress --config rclone.conf
rclone copy f:/backup webdav:backup_1c --progress --config rclone.conf
@echo off
REM скрипт архивирующий папку с базами 1с файлы *.1CD
REM BASEDIR путь к папке где лежат базы 1С , если русскими буквами имя папки DOS dir /x
REM SET BASEDIR=D:\1CBases
REM CALL c:\Apache24\bin\httpd.exe -k stop
SET BASEDIR=c:\V8
REM BACKUPDIR путь к папке куда будем складывать backup
SET BACKUPDIR=f:\backup
REM удаление архивов старше DAY дней
SET DAY=5
REM del /F /Q "%BACKUPDIR%"\
REM forfiles /p %BACKUPDIR% /m *.7z /s /d -%DAY% /c "cmd /c del @path /q"
forfiles /p %BACKUPDIR% /m * /s /d -%DAY% /c "cmd /c del @path /q"
REM PASSWORD пароль для архива
REM SET PASSWORD=VZZETcB1eItOc4HU1RQljWqSeymsM6ZVenvXObU1F5oKM3GLTr96K
REM пароль до 20 символов совместим с rar
SET PASSWORD=VZZETcB1eI
REM NAME имя файла с архивом
SET NAME=backup
SET datetimef=%date:~-4%_%date:~3,2%_%date:~0,2%_%time:~0,2%_%time:~3,2%_%time:~6,2%
SET datetimef=%datetimef: =0%
SET FILENAME=%BACKUPDIR%\%NAME%_%datetimef%.7z
SET LOG=%BACKUPDIR%\%NAME%_%datetimef%.log
REM CALL c:\7-zip\7za.exe a %FILENAME% -mmt2 -mx1 -t7z -v2000m -bso1 %BASEDIR%\*\*.1CD -p%PASSWORD% >%LOG% 2>&1
CALL c:\7-zip\7za.exe a %FILENAME% -mmt2 -mx1 -t7z -v2000m -bso1 %BASEDIR%\*\*.1CD >%LOG% 2>&1
REM CALL c:\Apache24\bin\httpd.exe -k start
REM cd f:\rclone
REM rclone copy f:/backup webdav:backup_1c --progress --config rclone.conf
rclone sync f:/backup webdav:backup_1c --progress --config rclone.conf
rclone copy f:/backup webdav:backup_1c --progress --config rclone.conf
четверг, 7 мая 2020 г.
среда, 6 мая 2020 г.
Crypto-Pro CSP Release Ver:5.0. cryptcp.x64.exe windows
Отсоединенная подпись
cryptcp.x64.exe -sign -f sert.cer -der "Договор для подписи.doc"
cryptcp.x64.exe -sign -uMy -dn mail@example.com -der "Договор для подписи.doc" -detached
Присоединенная подпись
cryptcp.x64.exe -sign -f sert.cer -der "Договор для подписи.doc" "Договор для подписи.doc.p7s"
cryptcp.x64.exe -sign -uMy -dn mail@example.com -der "Договор для подписи.doc"
Проверка присоединенной подписи
cryptcp.x64.exe -verify "Договор для подписи.doc.sig"
bat файл для подписи
REM @echo off
REM Положить cryptcp.x64.exe c:\Apache24\bin\ (перечислено в PATH)
CD %~dp0
REM сryptcp.x64.exe -sign -uMy -dn mail@example.com -pin 12345 -der %1 -detached >> nul
REM cryptcp.x64.exe -sign -uMy -dn mail@example.com -pin 12345 -der %1 -detached
echo %1.sig
cryptcp.x64.exe -sign -uMy -dn mail@example.com -pin 12345 -der %1 %1.sig -detached
C:\Program Files\Crypto Pro\CSP>csptest -keyset -enum_cont -fqcn -verifyc
CSP (Type:80) v5.0.10005 KC1 Release Ver:5.0.11732 OS:Windows CPU:AMD64 FastCode:READY:DISABLED (RSA; ).
AcquireContext: OK. HCRYPTPROV: 198451600
\\.\Aktiv Rutoken lite 0\vu2020
cryptcp.x64.exe -sign -f sert.cer -der "Договор для подписи.doc"
cryptcp.x64.exe -sign -uMy -dn mail@example.com -der "Договор для подписи.doc" -detached
Присоединенная подпись
cryptcp.x64.exe -sign -f sert.cer -der "Договор для подписи.doc" "Договор для подписи.doc.p7s"
cryptcp.x64.exe -sign -uMy -dn mail@example.com -der "Договор для подписи.doc"
Проверка присоединенной подписи
cryptcp.x64.exe -verify "Договор для подписи.doc.sig"
bat файл для подписи
REM @echo off
REM Положить cryptcp.x64.exe c:\Apache24\bin\ (перечислено в PATH)
CD %~dp0
REM сryptcp.x64.exe -sign -uMy -dn mail@example.com -pin 12345 -der %1 -detached >> nul
REM cryptcp.x64.exe -sign -uMy -dn mail@example.com -pin 12345 -der %1 -detached
echo %1.sig
cryptcp.x64.exe -sign -uMy -dn mail@example.com -pin 12345 -der %1 %1.sig -detached
C:\Program Files\Crypto Pro\CSP>csptest -keyset -enum_cont -fqcn -verifyc
CSP (Type:80) v5.0.10005 KC1 Release Ver:5.0.11732 OS:Windows CPU:AMD64 FastCode:READY:DISABLED (RSA; ).
AcquireContext: OK. HCRYPTPROV: 198451600
\\.\Aktiv Rutoken lite 0\vu2020
воскресенье, 3 мая 2020 г.
Установка Apache с возможностью запуска нескольких экземпляров для разных версий сервера 1с
1. Установка сервера 1с на нестандартные порты
#Правим build.sh для установки web компоненты
nano build.sh
После строк:
mkdir /tmp/1ctmp/tmp
dpkg-deb -x /tmp/1ctmp/1c-enterprise83-common_*_amd64.deb /tmp/1ctmp/tmp
dpkg-deb -x 1c-enterprise83-server_*_amd64.deb /tmp/1ctmp/tmp
Добавить:
dpkg-deb -x 1c-enterprise83-ws_*_amd64.deb /tmp/1ctmp/tmp
Сохранить.
2. Устанавливаем сервер 1с на нестандартные порты с web компонентой
Предположим что установлен дополнительный сервер
имя u2004 на порту 1741
u2004:1741
demo - имя базы в кластере 1с (нужно создать, вместо demo свое имя)
$ hostname
u2004
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с u2004:1741
#Создаем директорию для vrd-файла:
sudo mkdir -p /var/www/ib/demo
#А также файл конфигурации Apache:
sudo touch /etc/apache2-web1/conf-available/demo.conf
#Переходим в каталог с утилитой публикации веб-клиента (нестандартное расположение для того сервера, который установили):
cd /opt/1C/v8.3.16.1148/x86_64/
demo - имя базы в кластере 1с
Запускаем утилиту публикации базы 1с:
sudo ./webinst -apache24 -wsdir demo -dir '/var/www/ib/demo' -connstr 'Srvr="u2004:1741";Ref="demo";' -confPath /etc/apache2-web1/conf-available/demo.conf
Где
u2004:1741 - адрес сервера 1С:Предпрятие на нестандартном порту 1741
#Публикация выполнена
#Проверяем модуль wsap24.so должен быть правильно расположен, в данном случае #нестандартный путь:
cat /etc/apache2-web1/conf-available/demo.conf
#LoadModule _1cws_module "/opt/1C/v8.3.16.1148/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.16.1148/x86_64/ wsap24.so"
По аналогии можем подключать другие базы.
Но перед запуском следующего экзепляра не забудьте
изменить порты.
#Правим build.sh для установки web компоненты
nano build.sh
После строк:
mkdir /tmp/1ctmp/tmp
dpkg-deb -x /tmp/1ctmp/1c-enterprise83-common_*_amd64.deb /tmp/1ctmp/tmp
dpkg-deb -x 1c-enterprise83-server_*_amd64.deb /tmp/1ctmp/tmp
Добавить:
dpkg-deb -x 1c-enterprise83-ws_*_amd64.deb /tmp/1ctmp/tmp
Сохранить.
2. Устанавливаем сервер 1с на нестандартные порты с web компонентой
Предположим что установлен дополнительный сервер
имя u2004 на порту 1741
u2004:1741
demo - имя базы в кластере 1с (нужно создать, вместо demo свое имя)
$ hostname
u2004
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с u2004:1741
#Создаем директорию для vrd-файла:
sudo mkdir -p /var/www/ib/demo
#А также файл конфигурации Apache:
sudo touch /etc/apache2-web1/conf-available/demo.conf
#Переходим в каталог с утилитой публикации веб-клиента (нестандартное расположение для того сервера, который установили):
cd /opt/1C/v8.3.16.1148/x86_64/
demo - имя базы в кластере 1с
Запускаем утилиту публикации базы 1с:
sudo ./webinst -apache24 -wsdir demo -dir '/var/www/ib/demo' -connstr 'Srvr="u2004:1741";Ref="demo";' -confPath /etc/apache2-web1/conf-available/demo.conf
Где
/var/www/ib/demo
- директория где будет создан vrd-файл,
demo
- имя ИБ,u2004:1741 - адрес сервера 1С:Предпрятие на нестандартном порту 1741
/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.16.1148/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.16.1148/x86_64/ wsap24.so"
По аналогии можем подключать другие базы.
Но перед запуском следующего экзепляра не забудьте
изменить порты.
суббота, 2 мая 2020 г.
Запуск нескольких экземпляров Apache для разных версий сервера 1с
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"
По аналогии можем подключать другие базы
=====================================================================
Аналогично делаем другие экземпляры
=====================================================================
Подписаться на:
Сообщения (Atom)