Настройка веб-сервера Nginx
Для развертывания клиентской транслирующей части необходимо взять отдельный сервер под управлением семейства операционных систем Linux. Nginx также существует для Windows, но в нем не реализована поддержка в виде службы, что не подходит под условия данной статьи.
1. Установка Nginx под Linux
Итак, предполагается, что есть только что установленная операционная система Ubuntu 18.04 LTS без графического интерфейса пользователя.
Перед тем как продолжить, нужно проверить доступные версии программного обеспечения дистрибутива. Выполняем команду:
В выводе результата команды можно увидеть, что доступны обновления. Рекомендуются их обновить с помощью команды (подсказка «Run ‘apt list –upgradable’»):
По завершению обновления пакетов приложений можно приступить к установке непосредственно веб-сервера.
Нужно выполнить команду команду:
Необходимо дождаться окончание выполнения команды и убедиться, что в момент установки никаких ошибок не возникло. В данном случае установка прошла без проблем.
Далее нужно проверить, что помимо самой установки, веб-сервер запустился и готов обрабатывать запросы (для данной команды использование sudo не обязательно):
В ответ можно увидеть, что состояние службы active (running). Это значит, что веб-сервер работает в штатном режиме, и можно переходить к настройке трансляции запросов либо к генерации самоподписанного сертификата (если в этом есть необходимость).
2. Выпуск самоподписанного сертификата (необязательно)
После установки Nginx в операционной системе уже должен быть установлен openssl. Поэтому можно сразу приступить к генерации сертификата.
Первоначально нужно перейти в директорию хранилища сертификатов с помощью команды:
После чего требуется ввести команду генерации сертификата, где вместо нужно подставить имя компьютера, на котором планируется размещен Apache:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout .key -out .crt
Во время выполнения команды будет задано несколько вопросов. Для «Common Name (e.g. server FQDN or Your bane)» нужно также указать имя сервера. Остальные поля заполняются произвольно (кроме «Country name» — здесь можно оставить по умолчанию).
3. Привязка сертификата и переадресация запросов
После того как сертификаты были получены и размещены в директорию сертификатов, нужно перейти в директорию публикаций сайтов Nginx:
Предполагается, что уже есть две базы опубликованные на веб-серверах с Apache и IIS (см. Настройка веб-сервера IIS и 3. Установка Apache под Linux).
Веб-сервер Apache расположен на компьютере , а веб-сервер IIS расположен на компьютере .
На веб-сервере Apache опубликована информационная база с именем , а на веб-сервере IIS опубликована информационная база с именем .
С помощью любого удобного редактора нужно отредактировать файл nginx.conf и добавить в секцию http после комментария «# SSL Settings» (предварительно удалив все параметры в этой секции) следующий текст настройки:
server < listen 443 ssl; server_name _; keepalive_timeout 70; ssl_certificate /etc/ssl/certs/server2.crt; ssl_certificate_key /etc/ssl/certs/server2.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location // < proxy_pass http:////; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto https; > location // < proxy_pass http:////; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_heade X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto https; > >
После этого нужно сохранить и перезапустить службу nginx.
sudo service nginx restart
4. Проверка публикации
Для проверки корректной работы нужно открыть страницу в браузере и перейти по ссылке, которая состоит из двух частей:
- Имя вашего сервера (например, server1).
- Имя публикации базы (которое было указано в окне настройки публикации).
Для таких параметров ссылка будет иметь вид:
Поднимаем сервер 1с с публикацией базы и веб сервисов на Linux
Сегодня я бы хотел рассказать, как поднять сервер 1с на linux debian 9 с публикацией web-сервисов.
Web-сервисы — это один из механизмов платформы, используемых для интеграции с другими информационными системами. Он является средством поддержки SOA (Service-Oriented Architecture) — сервис-ориентированной архитектуры, которая является современным стандартом интеграции приложений и информационных систем. По сути — это возможность создать html страницу с данными, к которой, потом можно обратиться любым другим приложением и забрать их.
Плюсы — работает быстро (даже при достаточно большом объеме данных), относительно удобно.
Минусы — ваш програмист 1с будет много и долго на вас ворчать, пока будет писать веб-сервис для вашей базы. Штука очень своеобразная в написании.
Я не буду рассказывать как написать веб-сервис… я расскажу как его опубликовать на Linux из консоли сервера, а так же немного про установку 1с сервера на Linux.
И так, у нас есть debian 9 netinst, приступаем:
Устанавливаем PostgresPro (Прошу заметить что он не бесплатный, и распространяется, только в рамках ознакомления с возможностями):
# apt-get install -y wget gnupg2 || apt-get install -y gnupg
# wget -O - http://repo.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO | apt-key add -
# echo deb http://repo.postgrespro.ru/pgpro-archive/pgpro-11.4.1/debian stretch main > /etc/apt/sources.list.d/postgrespro-std.list
# apt-get install -y postgrespro-std-11-server
# /opt/pgpro/std-11/bin/pg-setup initdb
# /opt/pgpro/std-11/bin/pg-setup service enable
# service postgrespro-std-11 start
# /opt/pgpro/std-11/bin/psql -U postgres -c "alter user postgres with password 'ВашПароль';"
# nano /var/lib/pgpro/std-11/data/postgresql.conf
Раскомментируем и поменяем какие адреса слушать:
Далее разрешим авторизоваться пользователям из нашей сети
# nano /var/lib/pgpro/std-11/data/pg_hba.conf
Более подробно о различных установках Postgres для 1с можно почитать тут.
Заливаем на сервер архив скачанный с сайта 1с (в моем случае deb64_8_3_15_1534.tar.gz)
# tar -xzf deb64_8_3_15_1534.tar.gz
# apt install imagemagick unixodbc libgsf-bin
Через консоль администрирования или через клиент 1с создаем базу и заливаем нашу конфигурацию…
./webinst -publish -apache24 -wsdir Test -dir /var/www/test/ -connstr "Srvr=10.7.12.108;Ref=test;" -confPath /etc/apache2/apache2.conf
Лезем в var/www/test/ и смотрим что там появилось.
Это схемы которые нужны для запуска веб-клиента 1с… теперь в нашу тестовую базу можно зайти из браузера по адресу «http ://АдресСервера/Test» (регистр важен! это же линукс) или указать в клиенте «тип расположения базы» адрес «http ://АдресСервера/Test», и клиент будет работать с опубликованной базой.
А что же на счет веб-сервисов? (в моей тестовой конфигурации их два: WebBuh для обмена данными с бухгалтерией и toplog интеграция с системой wms одноименной компании).
Что ж, добавим пару строк в наш vrd файлик…
И теперь наш веб-сервис доступен по адресу «http ://АдресСервера/Test/Web_buh.1cws?»
Зачем надо было делать это руками?
Поскольку наш сервер без графической оболочки, запустить на нем конфигуратор — не получится, и соответственно выполнить публикацию штатными средствами. Удаленный же конфигуратор, который стоит на клиенте не публикует на сервере веб-сервисы. Поэтому нам приходится править конфиг вручную по шаблону описанному выше.