Сервер приложений под linux

Клиент-сервер под linux на c++ общение клиентов «все со всеми» с использованием потоков

Начну с того, что была предложена работа на должность программиста с\с++. Задание это название темы.

Полез в интернет, кругом все напичкано чатами и общением по типу клиент-сервер, но увы кода с подобным заданием я так и не нашел. Был примитив типа ЭХО клиент-сервера, который я и решил взять за основу:
Это у нас клиент:

это код сервера:

После всего этого в клиенте нужно отправить сообщение серверу используя функции send или write а на стороне сервера принять сообщение и переотправить его обратно клиенту используя функции read и send.

Вообще есть разные функции отправки и приема, к примеру send и recv вместе с сообщением шлют еще и флаг подтверждения, а функции read и write не требуют подтверждения, то есть сообщение может потерять байты при отправке и это не будет зафиксировано.

Так как сокеты это дуплекс и создавая связь между клиентом и сервером мы не можем писать туда сообщения из других подключенных сокетов, необходимо создать массив со всеми активными сокетами подключенными к серверу. И еще одно замечание очень важное:

Для общения между несколькими сокетами необходимо использовать функцию select, которая выбирает сокет из списка и отсылает ему сообщение, и так далее, пока не закончатся все записанные сокеты

После этого в массив сокетов будет записано правильное значение подключаемого сокета а далее остается лишь перебирать их при рассылке сообщений:

Запишем все это в функцию и создадим отдельный поток:

Что касаемо клиента, то необходимо создать два разных потока для чтения и записи в сокет:

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

Источник

Разворачиваем и демонизируем ASP.NET Core приложение под Linux в виде фонового сервиса

Подготовка окружения

Для начала, добавим dotnet-репозиторий:

На выходе получаем примерно следующее:

Теперь обновим индекс наших пакетов:

Далее, мы можем просто установить dotnet-пакет при помощи apt-get:

Теперь можем смело приступать к созданию приложения

Создание приложения

При помощи команды dotnet new мы можем создать шаблон для нашего приложения, подобно шаблонам из Visual Studio. Подробная документация к команде.

На текущий момент (07.2017), команда dotnet new поддерживает следующие шаблоны:

Мы создадим веб-приложение ASP.NET Core:

На выходе консоль выдаст нам следующее сообщение:

Чтобы убедиться, что шаблон сгенерировался правильно, заглянем в содержимое папки при помощи команды ls -la .

Все необходимые папки для сборки приложения на месте, приступим! Для начала, восстановим все пакеты при помощи dotnet restore .

Теперь можем собрать приложение:

Запустим приложение с помощью:

Консоль говорит нам, что приложение запустилось по адресу localhost:5000/. Проверим:

Желающих подробнее узнать, как работает web-сервер отсылаю к официальному источнику.

Теперь убьём процесс нажав Ctrl + C и опубликуем приложение командой dotnet publish. Эта команда упаковывает приложение и все его зависимости для дальнейшего развёртывания (желающим интимных подробностей сюда).

В случае проблем с правами доступа Вам поможет команда sudo chmod и эта страница документации.

Развертывание на сервере.

Если мы хотим развернуть наше приложение под linux-сервером, необходимо настроить прокси и демонизировать процесс запуска приложения. Для проксирования мы будем использовать nginx, для демонизации процесса systemd. Краткое описание утилиты

Как следует из документации выше, с asp.net core в коробке идет kestrel — веб-сервер для asp.net приложений. Зачем нам тогда нужен прокси-сервер? Ответ даётся на официальной странице Microsoft:

Если вы выставляете ваше приложение в интернет, Вы должны использовать IIS, Nginx или Apache как обратный прокси-сервер.

Обратный прокси-сервер получает HTTP запросы из сети и направляет их в Kestrel после первоначальной обработки, как показано на след диаграмме:

Главная причина, по которой следует использовать обратный прокси сервер — безопасность. Kestrel относительно нов и ещё не имеет полного комплекта защиты от атак.

Ещё одна причина, по которой следует использовать обратный прокси-сервер — наличие на сервере нескольких приложений, использующих один порт. Kestrel не поддерживает разделение одного порта между несколькими приложениями.

Так же, использование обратного прокси-сервера может облегчить распределение нагрузки и поддержку SSL.

Как говорилось выше, в качестве прокси-сервера мы будем использовать nginx.

Т.к. в качестве прокси-сервера у нас используется не IIS, следует добавить следующие строки в метод Configure файла Startap.cs.

Здесь мы включаем поддержку ForwardedHeaders мидлвера из пакета. Microsoft.AspNetCore.HttpOverrides, который будет вставлять в Http-запрос заголовки X-Forwarded-For и X-Forwarded-Proto, использующиеся для определения исходного IP адреса клиента и передачи его прокси-серверу. Определение мидлверов и практическое использование так же будет рассмотрено в дальнейших частях этого гайда.

Если у Вас nginx не установлен, выполните следующую команду.

и запустите его командой:

Далее, нам необходимо сконфигурировать nginx для проксирования http-запросов.

Создадим файл /etc/nginx/sites-available/aspnetcore.conf. Папка sites-avalible укахывает nginx-у, какие веб-сайты доступны на текущем сервере для обработки. Добавим в него следующие строки:

Создадим символическую ссылку на aspnetcore.conf в папку sites-enabled, в которой отражаются запущенные nginx-ом сайты.

Nginx настроен на то, чтобы принимать запросы с localhost:8888. Перезапускаем nginx командой sudo service nginx restart , чтобы созданные нами конфигурационные файлы вступили в силу. Проверяем:

502-я ошибка говорит, что сервер перенаправляет нас в другое место и в этом месте что-то пошло не так. В нашем случае — я убил процесс с нашим веб-приложением, которое было ранее запущено командой dotnet run. Потому что могу 🙂

На самом деле, потому что запускать dotnet run в консоли и вечно держать эту вкладку открытой грустно. Именно поэтому процесс будем демонизировать, то есть настроем автозапуск после перезагрузки и автоматическую работу в фоне с помощью systemd.

Для этого создадим файл в директории /etc/systemd/system/ с расширением .service

Назовём его kestrel-test:

И положим в него следующее содержимое:

[Unit]
Description=Example .NET Web API Application running on Ubuntu

[Service]
WorkingDirectory=/home/robounicorn/projects/asp.net/core/test-lesson/bin/Debug/netcoreapp1.1/publish #путь к publish папке вашего приложения
ExecStart=/usr/bin/dotnet /home/robounicorn/projects/asp.net/core/test-lesson/bin/Debug/netcoreapp1.1/publish/test-lesson.dll # путь к опубликованной dll
Restart=always
RestartSec=10 # Перезапускать сервис через 10 секунд при краше приложения
SyslogIdentifier=dotnet-example
User=root # пользователь, под которым следует запускать ваш сервис
Environment=ASPNETCORE_ENVIRONMENT=Production

Читайте также:  Команда для остановки службы windows

Теперь включим и запустим сервис при помощи следующих команд:

Проверим статус сервиса:

Если всё было сделано правильно, на эта команда выдаст нам следующее:

Источник

8. Linux как сервер приложений

Linux как сервер приложений

По своей природе Linux предназначен для работы в качестве файл-сервера, сервера печати или сервера Intranet и является полнофункциональным сервером приложений. При работе с сервером приложений, приложения в действительности выполняются на сервере и лишь отображаются на терминале или рабочей станции, используя протокол X Windows или связь с терминалом, например Telnet. В типичных сетях Windows приложения выполняются на рабочей станции, а данные сохраняются на сервере и передаются с сервера на рабочую станцию.

Централизованное выполнение ряда приложений более эффективно. Кроме того, сервер приложений позволяет легко осуществлять контроль за работой программ. В сетях Windows или Novell система под управлением Linux может работать как сервер приложений, выполняя следующие функции.

  • Выполнение программ с символьным интерфейсом, например мощного почтового программного обеспечения Unix/Linux.
  • Поддержка пользовательских символьных интерфейсов для централизованных баз данных Linux.
  • Осуществление доступа к выполняющимся в среде Unix/Linux внутренним приложениям, таким, как корпоративная телефонная книга.

Если Х-сервер инсталлирован на рабочей станции под управлением Windows, можно осуществлять централизованное управление приложениями X Windows с рабочей станции, в то время как сами приложения выполняются на сервере приложений Linux.

Linux поддерживает развитые сети с графическим интерфейсом пользователя (GUI) без программного обеспечения Windows 95/98/Ме или NT/2000. Подобное решение представляет интерес для организаций с небольшим бюджетом. Например, автор развернул сеть из 10 рабочих станций, работающих исключительно под Linux. Рабочие станции представляли собой машины типа IBM PC AT 486 с 8 Мбайт RAM. Запуск Windows с Microsoft Office на таких компьютерах был проблематичным, а стоимость необходимого лицензионного программного обеспечения составила бы более 300 $ на рабочую станцию.

Но с Linux на старом аппаратном обеспечении эти системы могут работать как простые X-терминалы, отображая приложения, которые выполняются на единственном сервере приложений. В этом случае сервером приложений может быть система Pentium 200 МГц с 96 Мбайт RAM. Единственное, за что надо заплатить в лицензионном программном обеспечении, — это офисный пакет программ Unix для того количества-дюльзователей, которые будут его использовать.

Сеть, подобная этой, может организовать эффективную работу пользователя, подобно системе Pentium с 32 Мбайт RAM под управлением Windows 95/98/Ме. Все управление программным обеспечением, счетами пользователя, резервированием данных и сопровождением системы может выполняться централизованно на одном или двух серверах.

Конечно, это решение подразумевает основное стратегическое правило: не использовать популярные приложения Windows. Когда существенна стоимость или недоступны современные аппаратные решения, Linux становится сильным кандидатом для организации распределенной компьютерной платформы.

Источник

Как установить локальный сервер на Linux

Пошагово объясняем, как установить Xampp на Linux и настроить доступ для редактирования сайтов.

Под локальным сервером в веб-разработке обычно понимают набор ПО, которое позволяет запускать сайты на своём компьютере, реже — сам компьютер. Доступ к этим сайтам есть только на одном устройстве (потому-то он и локальный), но этого достаточно, чтобы программист мог всё протестировать.

Из этой статьи вы узнаете, как установить сервер на Linux.

Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.

Какой локальный сервер выбрать

На мой взгляд, лучший вариант — Lampp. Название этого локального сервера расшифровывается так:

  • X или L — операционная система (X — общее название, L — Linux).
  • A — Apache (HTTP-сервер).
  • M — MySQL или MariaDB (система управления базами данных).
  • P — PHP (скриптовый язык программирования).
  • P — Perl (язык программирования).

Серьёзных альтернатив у Lampp нет. Это не критично, потому что у него есть большое сообщество, а обновления выходят регулярно. Из минусов можно отметить разве что отсутствие GUI (хотя для Linux это не недостаток).

Graphical user interface (GUI) — Графический интерфейс пользователя.

Установка Lampp

Команды из этой статьи протестированы на Ubuntu 19.04, но для других дистрибутивов действия будут аналогичными.

Для начала нужно скачать установочный файл с официального сайта.

После завершения загрузки откройте терминал и перейдите в папку со скачанным файлом.

Источник

Сервер приложений 1С на Linux

В последнее время, всё чаще и чаще меня начинает душить жаба.
Большая, зелёная, она угнездилась где-то внутри и формирует категорическое нежелание платить за что либо, даже если это не мои личные деньги! Не платить вообще, или же по максимуму минимизировать затраты там, где это возможно.
И если ко всему прочему, необходимо организовать работу с 1С в малой или средней компании, при ограниченном бюджете, то напрашивается желание собрать сервер из того что есть и накатить на него что-нибудь бесплатное.
Это всё к тому, что совсем необязательно покупать для 1С-сервера, лицензии от MS Windows Server+Terminal Cals и MS SQL сервер. Также необязательно рассматривать различные утилиты бэкапа и прочего софта реализующего все фишки работы терминального сервера 1С.

Сравнение платного и бесплатного софта (без учета железа) взято по большей части отсюда, по примеру данной статьи и на данный момент выглядит так:

Наименование Стандартное лицензирование (руб.) Вариант Linux + Postgres SQL (руб.)
Лицензии Windows
Windows Server 2012 Std. 45012 0
MS Windows Terminal Services Client Access License 2012 Single Language 1-device NoLevel OLP 102960 (20×78) 0
Лицензии 1С
1С: Предприятие 8.3.Лицензия на сервер (x86-64) 86400 86400
1С: Предприятие 8.3 Клиентская лицензия на 20 рабочих мест 78000 78000
Лицензии SQL
Лицензия на сервер MS SQL Server Standard 2012 Runtime для пользователей 1С: Предприятие 8 13381 0
Клиентский доступ на 20 рабочих мест к MS SQL Server 2012 Runtime для 1С: Предприятие 8 117748 0
Итого 443501 164400
Экономия 0 279101

Вполне возможно, что для форточек существуют какие-то пакетные предложения, с оптимизированной ценой для конкретного сервера.
Однако, это не означает того, что MS может уронить цены на свои продукты (лицензии) до нуля.
Из всего, что необходимо будет приобрести для Linux — это клиентские лицензии 1С, в случае использования файлового варианта баз. Или же покупка клиент-серверной платформы от них же, в случае использования SQL.
Ниже мы рассмотрим оба варианта реализации сервера.

Читайте также:  Linux автозапуск с флешки

Постановка задачи

  • Создание шаблона виртуальной машины со следующими параметрами:
  • ОС без потери производительности.
  • Полноценный сервер терминалов.
  • Возможность подключения по RDP(для совместимости клиентов).
  • Возможность подключения через Web.
  • Возможность поддержки от 1С.
  • Возможность бэкапа баз как на локальные диски(сетевые шары), так и в облако.
  • Возможность бэкапа всей виртуальной машины.

Итак, поехали:
Логически, наша цель выглядит вот так:

Сначала определимся с ОС. Я сразу выбрал CentOS-контейнер на системе виртуализации Proxmox, т.к. при контейнерной виртуализации LXC, VM использует ресурсы самого гипервизора, т.е. потери производительности нет.
Тем более, что в дальнейшем, можно добавить серверы в инфраструктуру и создать отказоустойчивый кластер совершенно бесплатно!
Собственно тема установки 1С на различные версии Linux — достаточно избита, поэтому здесь я постарался объединить в один рабочий мануал, все варианты установки и публикации сервиса, и бэкап.
Установка гипервизора Proxmox простейшая, качаем его отсюда.
Инсталлируется буквально в несколько кликов и ввод пароля админа.

Установка VM CentOS 6(занимает 2-3 минуты):

Загружаем шаблон LXC CentOS-6-default_20160205 из списка и жмем кнопку “Создать СТ”.
Также, при желании можно выбрать шаблон с Ubuntu, особой разницы нет.
Далее задаем параметры VM и выбираем скачанный шаблон.
Всё, в течении минуты у вас в наличии готовая ОС.
В файле /etc/hosts не должно быть записей формата localhost.localdomian или относящихся к IPv6, в случае отсутствия DNS-сервера, в нем должно быть прописано четкое соответствие IP-адрес сервера – FQDN имя – короткое имя. Пример правильного файла hosts:

Далее, обновляем систему, устанавливаем X-server, шрифты и прочие нужности необходимые для расшаривания сервера 1С.
Сначала через консоль Proxmox:

Далее через терминал:

Здесь samba можно и не ставить, а все что нужно закачивать через WinSCP, но если мы делаем не для себя, а отдаем сервер клиенту, лучше установить, т.к. может понадобиться и регистрация в клиентском DNS, и закачка файлов именно через неё.
Проверяем включен ли SELinux:

Если нет (не Disabled), то правим файл /etc/sysconfig/selinux

Далее настраиваем терминальный сервер:

Добавляем необходимые шрифты и прочие утилиты:

Далее через RDP (или vnc):

  1. Система-Параметры-Клавиатура-Раскладки-Параметры раскладки
  2. В переключениях на другую раскладку, оставим только одну комбинацию (я сделал Левый Ctrl-Левый Shift)
  3. Запустите приложение «Установка и удаление программ»
  4. Введите в строку поиска слово «LibreOffice» и нажмите Поиск
  5. Среди найденных пакетов выберите «Russian language pack for LibreOffice» и нажмите «Применить»

Всё, сервер в принципе готов (у меня ушло полчаса).

Мы подготовили систему, и теперь пора определиться с установкой 1С.

Варианты установки 1С:

Для того чтобы оптимизировать затраты, не всегда нужно сразу закупать клиент-серверную платформу. Ее стоимость, сопоставима со стоимостью недорогого сервера. Если в наличии имеется небольшая компания, с 5-6 одновременными подключениями к базе 1С, то можно просто купить клиентские лицензии для файлового варианта, что выйдет гораздо дешевле!
1. У нас есть клиентские лицензии на N клиентов (файловый режим).
В этом режиме клиенты будут работать с базой через веб-интерфейс (хочется сразу избежать проблем с подключением принтеров и пробросом дисков), а для административных задач — будет использоваться RDP. Да, можно конечно работать нативным клиентом через сетевую шару, установив Samba. Но это не имеет смысла для того, что мы делаем.
2. У нас есть лицензия на клиент-серверную платформу (SQL режим).
В SQL режиме клиенты могут работать и нативным клиентом с указанием сервера 1С Предприятия, и через веб, кому как удобнее. Также, есть доступ по RDP для администратора 1С.
Сначала качаем установочные пакеты с портала 1С (необходима авторизация):
rpm64.tar.gz — пакет серверных приложений
client.rpm64.tar.gz -пакет клиентских приложений
demodt.zip — тестовая база

Установка для файлового варианта:
Устанавливаем необходимые пакеты:

Устанавливаем 1С предприятие:

-wsdir – имя алиаса веб-сервера для соединения с базой, в последствии мы будем обращаться к ней набирая в браузере адрес.сервера/base
-dir – директория где будут располагаться файлы web-интерфейса 1с (точнее один файл default.vrd);
-connStr – строка соединения с базой 1с предприятия;
-confPath – расположение конфигурационного файла web-сервера apache.

Рестартуем настраиваем Apache:

Набираем в браузере centos6-1c/demo и получаем знакомый интерфейс 1С:

Пробуем соединиться через RDP:

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

Установка для второго, SQL варианта:

Качаем 2 пакета, сам сервер и addon от 1С отсюда (нужен логин и пароль). Потом копируем с помощью winscp и распаковываем их в отдельную папку.
К сожалению, версия 9.4 ставится с ошибками (проблема с библиотекой libicu), поэтому ставим 9.3. Python из аддонов ставить не надо, выдаст ошибку.

Далее создаем русскую локализацию и инициируем служебную базу Postgres

Запускаем службу PostgreSQL и добавляем его в автозагрузку:

Создаем пароль пользователю: postgres, пользователь postgres является администратором баз данных по умолчанию. И в данном примере пароль будет 123654:

Даем возможность подключаться к Postgres по сети, для этого редактируем файл pg_hba.conf

После сохранения файла, перезапускаем сервис postgres:

Публикуем через http:

Рестартуем апач и 1С:

Проверяем работает ли сервер 1с предприятия. Для этого на сервере выполняем следующую комманду:

Через интерфейс Администрирования 1С Предприятия (клиент Windows) создаем базу:

Повторюсь, сервер должен отвечать клиенту по имени. Т.е. должен быть прописан либо в DNS, либо в hosts файле компьютера клиента.

Через конфигуратор (на windows-клиенте, или RDP), закачиваем бэкап вашей или демонстрационной базы.
Всё работает так же, как и в первом варианте, мы можем соединяться как через http, так и через RDP, плюс возможность соединения нативным клиентом.

Лицензирование:

В процессе тестирования, платформа ни разу не заикнулась о лицензиях. Замечу, что в тестах использовалась демонстрационная база скачанная с портала 1С. Слухи, что есть возможность работы 12 пользователей без ключа — оказались правдой. Однако то, что пригодно для тестов, нельзя пускать в production. Техническая возможность работать без ключа, не означает юридического разрешения это делать.

Для компаний с малым количеством пользователей 1С подойдет вот этот вариант (на 5 пользователей).

Программная лицензия на сервер терминалов(веб-сервер):
Если 1С при запуске не затребует её сразу, то идём в Конфигуратор-Сервис-Лицензирование.
Программную лицензию (любую) рекомендуется получать «На этот компьютер» и «Всем пользователям данного компьютера».

USB ключ(HASP):
Сначала необходимо пробросить USB устройство в VM.
На proxmox:

Ищем нужное нам устройство и смотрим его ID: XXXX:YYYY
qm set 101 –usb0 host=XXXX:YYYY
где 101 — ID виртуальной машины куда будем пробрасывать порт.
Перезагружаем виртуалку.
Далее устанавливаем службу haspd:

Читайте также:  Fast start для windows

Во время установки некоторые демоны не стартуют. Это нормально, потому что для их старта нужен модуль из пакета haspd-modules. Но haspd-modules нельзя поставить раньше, потому что по зависимостям haspd должен ставиться первым. Модуль, который выдает ошибку (фейлит) будет нормально запущен после установки модулей при следующем запуске сервера.
Правим конфиг /etc/haspd/hasplm.conf. Добавим в него строчку:
NHS_IP_LIMIT = 127.0.0.1, 172.16.2.0/24

Именно в этой строчке мы перечисляем сети (вместо 172.16.2.0 добавьте свою) и хосты, которые смогут видеть HASP-ключ.

Проверим работу демона haspd:

Демон haspd имеет встроенный веб сервер доступный по адресу: xx.xx.xx.xx:1947

Бэкап:

Можем сделать автоматический бэкап целой VM на удаленное хранилище (или же на другой диск) прямо из Proxmox:
Т.е. через веб-интерфейс Proxmox заходим во вкладку «Хранилище» и добавляем NFS-массив. Это может быть как обыкновенная NAS-хранилка, так и xNIX-сервер с папкой доступной через NFS (кому что удобнее). Затем, указываем содержимое (backup).
Сама 1С рекомендует вот это (нужны имя и пароль). Там говорится, что для файловой версии, достаточно простое копирование файлов, а клиент-серверную версию рекомендуется бэкапить средствами СУБД.

Если просто и быстро (без очистки), то можно в два действия:

и добавим задание в crontab:

В принципе, здесь нет ничего сложного — сейчас любая хранилка поддерживает NFS, так что подмонтировать и создать автоматический бэкап на нее не составит никаких проблем, так же как и на Windows ресурс.
Однако, очень часто возникает вопрос о безопасности хранения бэкапа. Правилом хорошего тона является хранение бэкапа минимум в двух географически разнесенных местах. Рассмотрим два варианта: классический FTP и облачный.

Простой бэкап с копированием по FTP:

Бэкап в облако с шифрованием:
В production рекомендую пользоваться консольным клиентом яндекс-диска.
Также, если вы используете какое то другое облако, поддерживающее webdav, можно монтировать его при помощи davfs.

Для корректной работы GPG добавляем строчку в /sbin/ifup-local:

В зависимости от того, в каком виде у вас БД (файловая или SQL) закомментируйте ненужные строки. В этом тестовом скрипте, использовался юзер postgres с паролем 123654 и БД — test2. Файловая база находилась в /home/1C.
На тот случай, если необходимо работать с диском яндекса напрямую, я оставил строки с CURL.
Даём скрипту права на запуск:

Добавим задание в crontab:

Постинсталл:

Фаервол:
Сервер 1с предприятия в большинстве случаев находится в пределах локальной сети и его вполне можно использовать с отключенным файрволом без большой угрозы безопасности.
Отключаем iptables:

Правильная настройка:
Консоли администрирования нужен доступ к агенту сервера (ragent) по порту 1540, а для создания базы понадобится еще и доступ к рабочим процессам по портам 1562-1591. Толстому клиенту нужен доступ к менеджеру сервера (rmngr) по порту 1541 и рабочим процессам порты 1562-1591. Менеджеру haspd нужны порты 475 и 1947.
Остальное зависит от Ваших настроек. Для стандартно настроенного фаервола в CentOS набор разрешающих правил в /etc/sysconfig/iptables будет выглядеть приближенно так:

Обновление:
Обновление конфигурации происходит абсолютно так же, как и на windows версии, т.е. через конфигуратор.
Платформа обновляется простой процедурой скачивания rpm пакетов с сайта releases.1c.ru/project/Platform83, далее необходимо зайти в каталог с ними и выполнить команду:

Перед выполнением не забудьте сделать снэпшот и удостоверьтесь в наличии свежего бэкапа баз (предыдущие rpm пакеты тоже пока не удаляйте).

Привыкшим к Windows-версии ничего менять не надо, можно админить через тот же интерфейс с Windows клиента.
Однако, для ценителей есть и консольные команды.
Команда запуска в качестве демона:

По умолчанию процесс ras запускается на TCP 1545.
rac обращается к ras, который уже обращается (управляет) кластером серверов.
1) Просто help на всякий случай (кстати, он довольно понятный и ясный)

1C:Enterprise 8.3 Remote Administrative Client Utility ‘1C’ 1996-2015
Утилита администрирования платформы 1С: Предприятие

rac [mode] [command] [options] [arguments]

help Отображение справочной информации для указанного режима.
agent Режим администрирования агента кластера серверов
cluster Режим администрирования кластера серверов
manager Режим администрирования менеджера кластера серверов
server Режим администрирования рабочего сервера
process Режим администрирования рабочего процесса
service Режим администрирования сервиса менеджера кластера
infobase Режим администрирования информационной базой
connection Режим администрирования соединений
session Режим администрирования сеансов информационных баз
lock Режим администрирования блокировок
rule Режим управления требованиями назначения
profile Режим управления профилями безопасности кластера

2) Просмотр списка доступных кластеров серверов 1с для управления

3) Создание информационной базы

4) Просмотр списка информационных баз кластера

5) Просмотр списка подключений к информационным базам кластера

Оптимизация PostgreSQL:

  • postgresql.conf — основной файл с настройками СУБД
  • pg_hba.conf — файл с настройками доступа для клиентов. В частности, тут можно указать каким пользователям с каких IP-адресов можно подключаться к определенным БД, и требуется ли проверять пароль пользователя, и если требуется — каким методом.
  • pg_ident.conf — файл с преобразованием имен пользователей из системных во внутренние (вряд ли он потребуется большинству пользователей)

Для более тонкой настройки БД необходимо править файл postgresql.conf воспользовавшись онлайн сервисом. Либо вручную подобрать значения, почитав например эту статью. Подробно параметры расписаны в этой статье.

Подключение принтеров
Осуществляется через сервис CUPS, который устанавливается автоматом.
В сеансе RDP заходим по адресу localhost:631
При нажатии кнопки установить принтер — видим все сетевые принтеры в сети.
Если вы хотите пробросить свой личный принтер — дайте к нему доступ.

Выводы:

Мы сэкономили на лицензиях Windows Server + Terminal CALs, MS SQL Server + Connection CALs. Даже если посчитать стоимость лицензий от 1С, то Linux-вариант выигрывает! Также, собрав сервер из подручного железа, убедились в том, что по тестам(файловая версия), он работает быстрее чем windows-версия установленная на голом железе.
В итоге, мы смогли получить сервер (шаблон можно размножить), который можно рекомендовать в продакшн. Также, в дальнейшем, Proxmox как систему виртуализации, можно расширить и создать кластер.

P.S: Почему CentOS 6, а не 7? Потому что на момент написания статьи публикация приложения 1С через http поддерживала только apache 2.2. К тому же, в процессе настройки 7-й версии, появились какие то непонятные проблемы с polkitd.
P.P.S: Платформа, через некоторое время тестирования, все же потребовала лицензию.

Спасибо за внимание, жду Ваших комментариев!

Источник

Оцените статью