Публикация на Open Server Panel

06.05.24

Администрирование - Администрирование веб-серверов

Инструкция, как опубликовать веб-сервис с помощью OSPanel.

Для тех, кто еще не слышал об Open Server Panel (далее OSP) - это программная среда для веб-разработки на Windows с почти 4-мя миллионами скачиваний, позволяет быстро развернуть рабочую среду без дополнительной настройки. К тому же имеет удобный и понятный интерфейс.

Предположим, что вы ранее успешно публиковали 1С, уже установили программу, ознакомились с технологией и, может, даже создали пару виртуальных доменов. 

Обычно при публикации 1С не утруждает нас конфигурированием Apache, сейчас же придется вникнуть в некоторые особенности настройки. 

Начнем с того, что каждая публикация имеет файл *.vrd, в котором описаны настройки публикации, то есть что и как должно использоваться при обработке запроса модулем веб сервиса 1С. В нем найдем строку вида base="/myApp", где "myApp" внешнее имя базы с точки зрения 1С. Структурно все конфигурации и шаблоны OSP находятся в директории /modules, так что не будем отходить от этой идеи и создадим папку "1с", в ней папку нашего проекта "myApp" и уже туда положим файл описания публикации default.vrd, так чтобы полный путь выглядел как "C:\OSPanel\modules\1c\myApp\default.vrd". Рекомендую рядом скопировать этот файл, на случай если основной затрется или настройки публикации изменятся. 

Так же в директории "domains" создадим папку "myApp", туда можно будет положить файлы веб сайта, для примера вот этот: 

 
 index.html

Теперь перейдем к конфигурации Apache. 

Запускаем OSP, в трее ПКМ по иконке - Дополнительно - Конфигурация - Apache...


 

В конце секции подгружаемых модулей вставляем LoadModule _1cws_module "C:/Program Files/1cv8/8.3.21.1393/bin/wsap24.dll" (см. картинку ниже, строка 157)

При автоматической публикации через конфигуратор, 1с сама подставляет эту строку, мы же пропишем вручную.



Важно запомнить, что при обновлении платформы необходимо в этой строке указать номер новой версии.

Следующий этап - сделать так, чтобы apache понял, как, откуда и куда перенаправлять запросы.

Так как 1С считает, что наши публикации могут быть отделены друг от друга только корневым путем входящего URL, пропишем хитрый маневр. 

Вставим следующий текст в самый конец файла

 

# ----------------------------
# 1c publication
# ----------------------------

<VirtualHost *:1503>
    ServerName 1c.publications

    Alias /myApp "%sprogdir%/modules/1c/myApp/"
    <Directory "%sprogdir%/modules/1c/myApp">
        AllowOverride All
        Options None
        Order allow,deny
        Allow from all
        Require all granted
        
        SetHandler 1c-application
        ManagedApplicationDescriptor %sprogdir%/modules/1c/myApp/default.vrd
    </Directory>
</VirtualHost>

<VirtualHost *:%httpport%>
    ServerName mySite.test
    DocumentRoot "%sprogdir%/domains/myApp"
</VirtualHost>

<VirtualHost *:%httpport%>
    ServerName api.mySite.test

    RewriteEngine On
    ProxyPreserveHost On

    ProxyPass / http://1c.publications:1503/myApp/hs/myHTTPservice/
    ProxyPassReverse / http://1c.publications:1503/myApp/hs/myHTTPservice/
</VirtualHost>

 

Что тут происходит:

Первый блок - создаем виртуальный хост "1c.publications" на стороннем порту 1503, через него мы будем проксировать входящие запросы. Тут таких пар Alias и Directory может быть сколько угодно, по одной для каждой публикации.

Второй блок - публикация домена "mySite.test", через него мы сможем обращаться к файлам директории \domains\myApp, в частности к файлу index.html, который мы создали 2-мя пунктами ранее.

Третий блок - публикация поддомена "api", единственное, что мы тут делаем, так это перенаправляем весь запрос сразу в нужную публикацию 1с и нужный HTTP-сервис.

Сохраняем файл и переходим к последнему этапу.

В трее ПКМ по иконке OSP - Дополнительно - Конфигурация - Hosts файл

Обычно также находится тут: C:\Windows\System32\drivers\etc\hosts

В самый конец файла вставляем:

 

127.0.0.1 1c.publications
127.0.0.1 api.mySite.test
127.0.0.1 mySite.test

 

Сохраняемся и перезагружаем OSP.

Теперь мы можем отправить запрос /ping двумя способами:

1. http://1c.publications:1503/myApp/hs/myHTTPservice/ping

2. http://api.mySite.test/ping

А сам веб сайт находится тут - http://mySite.test/

Замечу, что ничего связанного с этими публикациями в настройках доменов и алиасов OSP не должно быть. 

Это же решение может быть использована вне OSP, с голым апачем и для публикации сервиса в открытый доступ.

Пару штрихов и никто не узнает, что у вашего приложения на бэке 1с))

Надеюсь, кому-то эта статья окажется полезной. Сеньоров девопсов прошу в комментарии, может, у кого найдется более элегантное решение)

Публикация Open Server Panel OSPanel Администрирование Web-сервисы HTTP-сервисы Веб Apache HTTP

См. также

Настройка работы 1C и Apache по протоколу https на РедОС (nginx)

Администрирование веб-серверов Системный администратор Бесплатно (free)

В материале описан порядок действий по настройке Apache для работы по защищенному протоколу HTTPS c 1С на операционной системе РедОС с выпуском сертификата SSL.

09.05.2024    1157    artemusII    1    

9

Установка Apache на РедОС и публикация 1С по протоколу http

Администрирование веб-серверов Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Статья описывает алгоритм установки, настройки и "сопряжения" с 1С веб-сервера Apache на РедОС. Статья, может, будет полезна тем, кто ищет в сети работающие алгоритмы установки веб-сервера и публикации на нем информационных баз 1С в контуре операционной системы РедОС. Помимо этого в статье рассмотрены некоторые спорные моменты, для анализа которых не удалось найти достаточно информации в сети.

25.04.2024    1957    artemusII    8    

18

Путь самурая. Ставим локальный Сервер взаимодействия

Сервера Администрирование веб-серверов Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подробная пошаговая инструкция (как делал я) установки Сервера взаимодействия версия 22.0.26 на Windows Server 2022. Установка собственного объектного хранилище с помощью системы MinIO (https://min.io/). Настройка Сервера взаимодействия для обмена файлами в сообщениях.

1 стартмани

07.04.2023    15066    VPanin56    46    

77

Публикатор 1С. Как публиковать базы с комфортом

Администрирование веб-серверов Системный администратор Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Сегодня я расскажу вам про публикатор 1С баз. Это приложение, которое позволит с комфортом и удобством управлять зоопарком ваших веб публикаций. Если у вас больше 5 публикаций, и вам надо с ними что-то делать с завидным постоянством. Если для того чтобы опубликовать тестовую базу, вам приходится идти в техподдержку Если вам просто надоело копаться в конфигах, раздумывая, а нигде ли вы не ошиблись в пробелах и запятых - то тогда вам будет интересна эта публикация.

20.03.2023    7356    85    Segate    5    

27

Midnight Commander, установленный с Entware, не выполняет команды и не запускает файлы

Администрирование веб-серверов Linux Системный администратор Программист Бесплатно (free)

Столкнулся с проблемой, установил на роутер Midnigt Commander с репозитория Entware, при попытке выполнения команды программа пишет ошибку "The shell is already running a command". Данная публикация описывает способ решения этой проблемы.

20.03.2023    3733    Eugen-S    2    

3

Контейнер Docker для размещения публикации базы 1С на разных платформах

Администрирование веб-серверов Системный администратор Платформа 1С v8.3 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

Появилась необходимость развернуть на одном хосте две публикации базы, но не на одной платформе, а на разных. Тут я расскажу, как это сделать для версии 8.3.22.1704.

02.02.2023    3871    Sney_Kice    1    

23
Оставьте свое сообщение