Запуск нескольких приложений FCF на одном сервере Linux
Создание нескольких приложений на одном сервере отличается только выбором уникальных портов. Для на начала создадим два тестовых приложения test1 и test2 Пример представлен для Linux систем. Все команды должны выполняться от пользователя имеющего права на запись в каталог /var/www и под которым будут работать процессы NODEJS $ cd /var/www $ fcfmngr create project test1 $ cd test1 $ fcfmngr create-db test1.js $ cd /var/www $ fcfmngr create project test2 $ cd test2 $ fcfmngr create-db test2.js Все два проекта у нас созданы, но не проинициализированы . Теперь нужно выполнить настройку портов. Настроим первый проект на порт 8080, зададим имя пользователя от которого будут запускаться процессы NODEJS, а также заменим системные порты взаимодействия fcfserver с процессами NODEJS. Откройте в редакторе файла конфигурации fcfserver server.json $ subl /var/www/test1/server.json
  • В корневой секции измените порт управляющих сигналов fcfserver: { ... "serverControlPort": 3740, ... }
  • В секции endpoints измените значение свойства port на 8080. Данный параметр задает рабочий порт fcfserver { ... "endpoints": [ { ... "port": 8080, ... } ] ... }
  • В секции endpoints.handlers измените значение свойств dataPorts и controlPorts. dataPorts - массив портов передачи данных. Массив автоматически дозаполняется до размера указанного в (process+processesLeakProtection)*2, но должен содержать хотя бы один элемент (array). Так как у нас используется по одному процессу NODEJS в защищенном от утечек памяти и без, у нас будет задействовано 4-е порта. Зададим значение 3100 controlPorts - массив портов управляющих сигналов. Массив автоматически дозаполняется до размера указанного в (process+processesLeakProtection)*2, но должен содержать хотя бы один элемент (array) Так как у нас используется по одному процессу NODEJS в защищенном от утечек памяти и без, у нас будет задействовано 4-е порта. . Зададим значение 3110 { ... "endpoints": [ { ... "handlers": [{ ... "dataPorts": [3100], ... "controlPorts": [3110], ... }] ... } ] ... }
Теперь отредактируем параметры запуска приложения test2. Откройте в редакторе файла конфигурации fcfserver server.json $ subl /var/www/test2/server.json
  • В корневой секции измените порт управляющих сигналов fcfserver: { ... "serverControlPort": 3741, ... }
  • В секции endpoints измените значение свойства port на 8081. Данный параметр задает рабочий порт fcfserver { ... "endpoints": [ { ... "port": 8081, ... } ] ... }
  • В секции endpoints.handlers измените значение свойств dataPorts и controlPorts. dataPorts - массив портов передачи данных. Массив автоматически дозаполняется до размера указанного в (process+processesLeakProtection)*2, но должен содержать хотя бы один элемент (array). Так как у нас используется по одному процессу NODEJS в защищенном от утечек памяти и без, у нас будет задействовано 4-е порта. Зададим значение 3120 controlPorts - массив портов управляющих сигналов. Массив автоматически дозаполняется до размера указанного в (process+processesLeakProtection)*2, но должен содержать хотя бы один элемент (array) Так как у нас используется по одному процессу NODEJS в защищенном от утечек памяти и без, у нас будет задействовано 4-е порта. . Зададим значение 3130 { ... "endpoints": [ { ... "handlers": [{ ... "dataPorts": [3120], ... "controlPorts": [3130], ... }] ... } ] ... }
Все запустите в разных терминалах приложения test1 и test2 $ cd /var/www/test1 $ sudo fcfserver ./server.json
$ cd /var/www/test2 $ sudo fcfserver ./server.json После инициализации обоих проверьте из доступность в браузере по адресам localhost:8080 и localhost:8081
Да пока настройка на несколько серверов муторная вещь, но это планируется исправить.