Как подключиться по SSH и по VNC к Облаку (cloud server), как открыть консоль сервера | REG.RU

Как подключиться по SSH и по VNC к Облаку (cloud server), как открыть консоль сервера
 |
 REG.RU Хостинг
Содержание
  1. ▍команды, начинающиеся с точки
  2. Что можно делать через панель управления vds
  3. ▍paas-решения
  4. ▍vps-хостинг
  5. ▍автозавершение команд с помощью клавиши tab
  6. ▍бессерверные среды
  7. ▍измерение времени, затраченного на выполнение некоего действия
  8. ▍исследование глобальных объектов
  9. ▍исследование объектов javascript
  10. ▍обычный сервер
  11. ▍очистка консоли
  12. ▍подсчёт элементов
  13. ▍приём пользовательского ввода из командной строки
  14. ▍работа с stdout и stderr
  15. ▍самый простой вариант хостинга: локальный туннель
  16. ▍создание индикатора выполнения операции
  17. ▍специальная переменная _
  18. Codepen
  19. Heroku
  20. Microsoft azure
  21. Nanobox
  22. Zeit now
  23. Базы данных
  24. Безопасность
  25. В линуксе самый простой способ сделать бэкап – использовать один из архиваторов: zip, gzip и tar.
  26. Возможности ajenty
  27. Возможности brainycp
  28. Возможности centos web panel
  29. Возможности hestia
  30. Возможности yunohost
  31. Возможности zpanel
  32. Домены
  33. Импорт или восстановление резервной копии бд
  34. Использование node.js в режиме repl
  35. Используем midnight commander
  36. Как подключиться к облачному серверу
  37. Как подключиться с помощью консоли vnc
  38. Как подключиться через ssh
  39. Копирование и перемещение
  40. Лучшие бесплатные панели управления vds
  41. Навигация по каталогам
  42. Обновления
  43. Отчеты
  44. Платформа google cloud
  45. Плюшки
  46. Почта
  47. Права доступа
  48. Предисловие
  49. Работа с аргументами командной строки в node.js-скриптах
  50. Резервное копирование
  51. Резервное копирование бд
  52. Система модулей node.js, использование команды exports
  53. Создание файлов и каталогов
  54. Удаление файлов и папок
  55. Установка
  56. Функционал панелей управления
  57. Хостинг для node.js-приложений
  58. ▍вывод в консоль результатов трассировки стека
  59. Вывод
  60. Заключение
  61. ▍использование цвета при выводе данных в консоль
  62. Вывод данных в консоль с использованием модуля console
  63. Итоги

▍команды, начинающиеся с точки

В режиме REPL можно пользоваться некоторыми специальными командами, которые начинаются с точки. Вот они:

  • Команда .help выводит справочные сведения по командам, начинающимся с точки.
  • Команда .editor переводит систему в режим редактора, что упрощает ввод многострочного JavaScript-кода. После того, как находясь в этом режиме, вы введёте всё, что хотели, для запуска кода воспользуйтесь командой Ctrl D.
  • Команда .break позволяет прервать ввод многострочного выражения. Её использование аналогично применению сочетания клавиш Ctrl C.
  • Команда .clear очищает контекст REPL, а так же прерывает ввод многострочного выражения.
  • Команда .load загружает в текущий сеанс код из JavaScript-файла.
  • Команда .save сохраняет в файл всё, что было введено во время REPL-сеанса.
  • Команда .exit позволяет выйти из сеанса REPL, она действует так же, как два последовательных нажатия сочетания клавиш Ctrl C.

Надо отметить, что REPL распознаёт ввод многострочных выражений и без использования команды

.editor

Например, мы начали вводить код итератора:

[1, 2, 3].forEach(num => {

Если, после ввода фигурной скобки, нажать на клавишу

Enter

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

... console.log(num)
... })

Нажатие на

Enter

после ввода последней скобки приведёт к выполнению выражения. Если ввести в этом режиме

.break

, ввод будет прерван и выражение выполнено не будет.

Режим REPL — полезная возможность Node.js, но область её применения ограничена небольшими экспериментами. Нас же интересует нечто большее, чем возможность выполнить пару команд. Поэтому переходим к работе с Node.js в обычном режиме. А именно, поговорим о том, как Node.js-скрипты могут принимать аргументы командной строки.

Что можно делать через панель управления vds

И это далеко не полный список. Здесь перечислены те функции, которые чаще всех используются в администрировании VDS/VPS.

▍paas-решения

PAAS (Platform As A Service, платформа как услуга) — это платформы, которые берут на себя заботу обо многих вещах, о которых, в обычных условиях, должен заботиться разработчик, развёртывающий приложение.

▍vps-хостинг

Существует множество платформ, предоставляющих услуги

. Общей чертой таких платформ является тот факт, что разработчик получает в своё распоряжение виртуальный сервер, самостоятельно устанавливает на него операционную систему (Linux или Windows), самостоятельно развёртывает приложения.

Среди платформ, предоставляющих VPS-услуги, которых существует великое множество, можно отметить следующие, которыми я пользовался и которые мог бы порекомендовать другим:

От себя добавим, что компания RUVDS тоже оказывает услуги VPS-хостинга. Мы лицензированы ФСТЭК, наши клиенты застрахованы AIG, у нас есть четыре дата-центра в разных странах. Есть собственный дата-центр RUCLOUD уровня TIER 3 в г. Королеве, Московская область, а также гермозоны в дата-центрах Deltalis (Швейцария), Лондоне Equinix LD8 (Великобритания), и ММТС-9 (Москва, Россия). Все гермозоны отвечают уровню надежности не ниже TIER 3.

Партнерами компании являются АО «ФИНАМ», финансовая группа «БКС», Национальный расчетный депозитарий (Московская биржа), АО «ВЦИОМ», компания «Гарс-Телеком», оператор такси Gett, оператор доставки Delivery Club и многие другие.

▍автозавершение команд с помощью клавиши tab

REPL — это интерактивная среда. Если в процессе написания кода нажать клавишу

Tab

на клавиатуре, REPL попытается автоматически завершить ввод, подобрав, например, подходящее имя уже объявленной вами переменной или имя некоего стандартного объекта.

▍бессерверные среды

Бессерверные платформы позволяют публиковать приложения и при этом совершенно не думать о серверах, об их настройке или об управлении ими. Парадигма бессерверных вычислений заключается в том, что приложения публикуют в виде функций, которые реагируют на обращения к сетевой конечной точке. Подобный подход к развёртыванию приложений ещё называют FAAS (Functions As A Service, функция как услуга).

Вот пара популярных решений в этой области:

Оба эти проекта предоставляют разработчику некий уровень абстракции, позволяющий публиковать приложения на различных FAAS-платформах, например, на Amazon AWS Lambda, на Microsoft Azure и на Google Cloud.

▍измерение времени, затраченного на выполнение некоего действия

Измерить время, которое занимает, например, выполнение некоей функции, можно с использованием методов

console.time()console.timeEnd()

. Выглядит это так:

const doSomething = () => console.log('test')
const measureDoingSomething = () => {
  console.time('doSomething()')
  //вызываем функцию и замеряем время, необходимое на её выполнение
  doSomething()
  console.timeEnd('doSomething()')
}
measureDoingSomething()

▍исследование глобальных объектов


Для того чтобы узнать, с какими глобальными объектам Node.js вы можете работать, введите в терминале команду

global.

и нажмите

TabИсследование глобальных объектов

▍исследование объектов javascript

Введите в командную строку имя какого-нибудь стандартного объекта JavaScript, например —

Number

, добавьте после него точку и нажмите клавишу

Tab

REPL выведет список свойств и методов объекта, с которыми может взаимодействовать разработчик:

Исследование объекта Number

▍обычный сервер

Ещё одно решение в области хостинга представляет собой покупку (или аренду, например, с помощью службы

) обычного сервера, установку на него Linux и другого ПО, подключение его к интернету и размещение на нём Node.js-приложений.

Хостинг — тема огромная, но, надеемся, материалы этого раздела позволят вам выбрать именно то, что вам нужно. Теперь переходим к рассказу о работе с Node.js в режиме REPL.

▍очистка консоли


Для очистки консоли используется команда

console.clear()

(её поведение в разных терминалах может различаться).

▍подсчёт элементов

Сейчас мы рассмотрим полезный метод

console.count()

. Взгляните на этот код:

const x = 1
const y = 2
const z = 3
console.count(
  'The value of x is '   x   ' and has been checked .. how many times?'
)
console.count(
  'The value of x is '   x   ' and has been checked .. how many times?'
)
console.count(
  'The value of y is '   y   ' and has been checked .. how many times?'
)


Метод

count()

подсчитывает количество выводов строк и выводит результат рядом с ними.

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

const oranges = ['orange', 'orange']
const apples = ['just one apple']
oranges.forEach(fruit => {
  console.count(fruit)
})
apples.forEach(fruit => {
  console.count(fruit)
})

▍приём пользовательского ввода из командной строки

Как сделать приложения командной строки, написанные для платформы Node.js, интерактивными? Начиная с 7 версии Node.js содержит модуль

, который позволяет принимать данные из потоков, которые можно читать, например, из

process.stdin

. Этот поток, во время выполнения Node.js-программы, представляет собой то, что вводят в терминале. Данные вводятся по одной строке за раз.

Рассмотрим следующий фрагмент кода:

const readline = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
})
readline.question(`What's your name?`, (name) => {
  console.log(`Hi ${name}!`)
  readline.close()
})

Здесь мы спрашиваем у пользователя его имя, а после ввода текста и нажатия на клавишу

Enter

на клавиатуре, выводим приветствие.

Метод question() выводит то, что передано ему в качестве первого параметра (то есть — вопрос, задаваемый пользователю) и ожидает завершения ввода. После нажатия на Enter он вызывает коллбэк, переданный ему во втором параметре и обрабатывает то, что было введено. В этом же коллбэке мы закрываем интерфейс readline.

Модуль readline поддерживает и другие методы, подробности о них вы можете узнать в документации, ссылка на которую приведена выше.

Если вам, с использованием этого механизма, надо запросить у пользователя пароль, то лучше не выводить его, в ходе ввода, на экран, а показывать вместо введённых символов символ звёздочки — *.

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

Есть и ещё один пакет, предоставляющий более полное и абстрактное решение подобной проблемы. Это пакет inquirer. Установить его можно так:

npm install inquirer

С его использованием вышеприведённый пример можно переписать следующим образом:

const inquirer = require('inquirer')
var questions = [{
  type: 'input',
  name: 'name',
  message: "What's your name?",
}]
inquirer.prompt(questions).then(answers => {
  console.log(`Hi ${answers['name']}!`)
})

Пакет inquirer обладает обширными возможностями. Например, он может помочь задать пользователю вопрос с несколькими вариантами ответа или сформировать в консоли интерфейс с радиокнопками.

Программисту стоит знать о наличии альтернативных возможностей по выполнению неких действий в Node.js. В нашем случае это стандартный модуль readline, пакеты readline-sync и inquirer. Выбор конкретного решения зависит от целей проекта, от наличия времени на реализацию тех или иных возможностей и от сложности пользовательского интерфейса, который планируется сформировать средствами командной строки.

▍работа с stdout и stderr

Как мы уже видели, команда

console.log()

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

stdout

Команда console.error() выводит данные в стандартный поток ошибок, stderr. Данные, отправляемые в stderr, попадают в консоль, хотя то, что выводится в этот поток, можно, например, перенаправить в файл журнала ошибок.

▍самый простой вариант хостинга: локальный туннель

Даже если вашему компьютеру назначен динамический IP-адрес или вы находитесь за NAT, вы можете развернуть на нём своё приложение и обслуживать запросы пользователей к нему, используя локальный туннель.

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

Для организации локальных туннелей есть очень хороший сервис, ngrok, доступный для множества платформ.

Используя ngrok, достаточно выполнить команду вида ngrok PORT и указанный вами порт будет доступен из интернета. У вас при этом, если вы пользуетесь бесплатной версией сервиса, будет адрес в домене ngrok.io. Если же вы решите оформить платную подписку, вы сможете использовать собственные доменные имена, и, кроме того, сможете повысить безопасность решения (пользуясь ngrok, вы открываете доступ к своему компьютеру всему интернету).

Ещё один инструмент, который можно использовать для организации локальных туннелей, называется localtunnel.

▍создание индикатора выполнения операции


Индикатор выполнения операции (progress bar) может пригодиться в разных ситуациях. Для создания индикаторов выполнения, работающих в консоли, можно воспользоваться пакетом

. Установить его можно так:

npm install progress

Ниже показан пример кода, в котором создаётся индикатор, который можно использоваться для вывода сведений о некоей задаче, состоящей из 10 шагов. В нашем случае на выполнение каждого шага уходит 100 мс. После того, как индикатор заполнится, вызывается команда

clearItnerval()

и выполнение программы завершается.

▍специальная переменная _


Переменная

_

(знак подчёркивания) хранит результат последней выполненной операции. Эту переменную можно использовать в составе команд, вводимых в консоль.

Codepen

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

Heroku

— это ещё одна замечательная платформа для размещения Node.js-приложений.

хорошая статья о том, как с ней работать.

Microsoft azure

— это облачная платформа от Microsoft. В её документации есть

, посвящённый Node.js-приложениям.

Nanobox


Создатели платформы

, в возможности которой входит развёртывание Node.js-приложений, называют её PAAS V2.

Zeit now

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

now

. Существует бесплатная версия Zeit, при работе с ней действуют некоторые ограничения. Есть и платная, более мощная версия этой платформы. Пользуясь Zeit, вы можете попросту не думать о том, что для работы вашего приложения нужен сервер. Вы просто разворачиваете приложение, а всё остальное находится в ведении этой платформы.

Базы данных


Пришла очередь создать базу данных (БД) для Вашего проекта. Все довольно просто — идем в меню DB и снова с помощью горящей клавиши

a

вызываем окно, где заполняем необходимые поля.

Не забываем все внесенные данные сохранить с помощью кнопки «Добавить». Далее можете спокойно заливать на хостинг нужную CMS или скрипт, на котором будет «крутиться» Ваш проект, и проводить дополнительную настройку для выпуска сайта в продакшн.

Безопасность

Как Вы может уже заметили, панель имеет фаервол, а также поддержку

В линуксе самый простой способ сделать бэкап – использовать один из архиваторов: zip, gzip и tar.

Примеры создания backup с использованием обоих вариантов:

zip -r backup.zip ./ваш_каталог
tar -zcvf backup.tar.gz ./ваш_каталог

Распаковка бэкапов в текущий каталог:

unzip backup.zip
tar -zx backup.zip

Возможности ajenty

  • Модульный интерфейс;
  • Поддержка проектов на Python, Ruby on Rails, Node.js;
  • Стандартная поддержка SSL;
  • Управление БД;
  • Файловый менеджер;
  • Управление DNS;
  • Встроенный брандмауэр;
  • Конфигурация зеркал и кластеров;
  • Управление доменами и электронной почтой;
  • Поддержка нескольких серверов;

Одна из наиболее популярных бесплатных панелей управления для VPS. Инструмент с открытым исходным кодом основан на языке PHP. ISP Config позволяет осуществлять управление одновременно несколькими виртуальными и физическими серверами.

✅ ПоддерживаемыеОС: Ubuntu, Debian, CentOS, Fedora, OpenSuSE.

Возможности brainycp

Легкая ПУ, где Apache заменен более быстрым NGINX. Ajenty написана на языке Python с поддержкой движка фреймворка Gevent, что позволило реализовать модульную архитектуру.

Из преимуществ панели отмечают: простой интерфейс, быстрый доступ к VPS, простую установку и подробную документацию. Контрольная панель поставляется с несколькими предустановленными инструментами, такими как текстовый редактор, менеджер кода, терминал и файловый менеджер.

✅ Поддерживаемые ОС: Debian, Ubuntu, RHEL, CentOS и Gentoo. Также возможен перенос на другое ПО на Linux и BSD.

Возможности centos web panel

Надежная контрольная панель для VPS с открытым кодом, являющаяся модулем серверной ПУ Webmin, основанной на Perl. Virtualmin позволяет управлять одновременно несколькими веб-хостингами через один интерфейс. Он работает только при условии предварительной установки Webmin.

Веб панель управления сервером распространяется в двух вариантах: бесплатная (Virtualmin GPL) и коммерческая про-версия (Virtualmin Pro). Преимущества ПУ заключаются в простом интерфейсе и системе двойной аутентификации.

✅ Поддерживаемые ОС: Ubuntu, Debian и Centos/RedHat.

Возможности hestia

YunoHost — модифицированный Debian дистрибутив, включающий в себя множество инструментов для работы с размещённым веб-проектом. Разработчики позаботились о безопасности и надёжности, при этом сохранив лёгкость системы. Для управления сервером создан удобный веб-интерфейс, с помощью которого можно взаимодействовать с веб-компонентами через браузер.

Возможности yunohost

Это мультиязычная панель управления хостингом корпоративного уровня. Предоставляет набор функций не уступающий и даже, в некоторых случаях, превосходящий возможности платных аналогов. Использование контрольной панели Brainycp предполагает автоматизацию всех процессов на стороне сервера.

Реализована расширенная поддержка PHP с типами подключения на выбор. С помощью контрольной панели возможно управление множественных хост-аккаунтов с лимитированием разнообразных параметров.

✅ ПоддерживаемыеОС: CentOS 7/8 64bit.

Возможности zpanel

  • Веб-сервер Apache PHP.
  • Интеграция с MySQL, hMailServer (Windows), Posfix (Linux), Filezilla (Windows), ProFTPd (Linux).
  • Сервисы для управления БД и FTP.
  • Система управления DNS.
  • Лимитирование услуг.
  • Создание бэкапов.
  • Интеграция биллинговой системы.
  • Поддержка cron.
  • Защита каталогов.
  • Мониторинг нагрузки на сервер.

Домены

Теперь можем добавлять свой сайт. Для этого переходим в меню WEB и с помощью клавиши

a

вызываем окно, в котором заполняем необходимые данные.

Сразу рекомендую раскрыть ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ и активировать дополнительный FTP-аккаунт, заполнив соответствующие поля. А для любителей статистики есть также возможность подключения Вашего ресурса к Webalizer или AWStats.

Импорт или восстановление резервной копии бд

Восстановление соответственно будет зависеть от того, сжат ваш бэкап или нет.

Если не сжат:

mysql -uимя_пользователя -p < db_backup.sql

Если база была сжата в формат .gz:

gunzip < db_backup.sql.gz | mysql -uимя_пользователя -p

Использование node.js в режиме repl

Аббревиатура REPL расшифровывается как Read-Evaluate-Print-Loop (цикл «чтение — вычисление — вывод»). Использование REPL — это отличный способ быстрого исследования возможностей Node.js.

Как вы уже знаете, для запуска скриптов в Node.js используется команда node, выглядит это так:

node script.js


Если ввести такую же команду, но не указывать имя файла, Node.js будет запущен в режиме REPL:

node

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

> node
>

Node.js теперь находится в режиме ожидания. Система ждёт, что мы введём в командной строке какой-нибудь JavaScript-код, который она будет выполнять.

Для начала попробуем что-нибудь очень простое:

> console.log('test')
test
undefined
>


Тут мы предложили Node.js выполнить команду, используемую для вывода данных в консоль. Первое значение,

test

, представляет собой то, что вывела команда

console.log('test')

. Второе значение,

undefined

, это то, что возвратила функция

console.log()

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

Используем midnight commander

Midnight Commander (он же просто “mc”) – это отличный мощный консольный двух-панельный менеджер файлов для Linux и других *nix-систем. Прообразом для него послужил заслуженный старичок из OS MSDOS – NortonCommander.

Как правило, на сервере хостинга MC уже установлен. Чтобы запустить его, нужно просто набрать команду “mc”.

MC позволяет:

  1. Осуществлять навигацию по файлам и каталогам.
  2. Копировать файлы и папки (клавиша F5).
  3. Перемещать и переименовывать файлы и каталоги (клавиша F6).
  4. Просмотр (F3) и редактирование (F4) файлов.
  5. Просматривать содержимое архивов (просто установить курсор на нужный архивный файл и нажать Enter).
  6. Распаковывать архивы и отдельные файлы из них (заходим в архив, выделяем нужные файлы и каталоги и нажимаем F5).
  7. Просматривать и управлять правами доступа к файлам (клавиши CTRL X, C).

Этим перечнем возможности MC не ограничиваются, полностью со всеми функциями можно ознакомиться перейдя в меню по клавише F9.

Как подключиться к облачному серверу

Для работы с облачными серверами существуют два основных вида удаленного подключения:

Важно: Консоль VNC используется только для устранения ошибок в функционировании сервера. Обращайтесь к ней в исключительных ситуациях (например, когда сервер не может загрузиться, или SSH-сервер не работает). Для выполнения ежедневных задач по администрированию сервера необходимо использовать доступ по SSH.

Информация о сервере и пароле доступа находится в информационном письме, отправленном на контактный e-mail после создания сервера.

Как подключиться с помощью консоли vnc

Для подключения по VNC:

Как подключиться через ssh

Чтобы подключиться по SSH к cloud-серверу, используйте инструкцию: Подключение и настройка SSH на VPS.

Копирование и перемещение

Копирование:

cp путь_к_файлу_или_папке
cp путь_к_файлу_или_папке путь_копии_файла_или_папки

Удаление как каталогов так и файлов производится одно и той же командой “mv”:

mv file.txt ./public_html/file.txt

Этой же командой можно делать переименование если и донор и цель указать в текущем каталоге:

mv file.txt file_rename.txt

Эта команда просто переименует файл file.txt в file_rename.txt.

Лучшие бесплатные панели управления vds

Несмотря на ценовую доступность платных ПУ, вроде ISPmanager, cPanel и Plesk, популярность бесплатных панелей управления хостингом продолжает оставаться высокой. Хотя бесплатные ПУ заметно проигрывают в функциональности, их часто выбирают те, кто только начинает изучать системное администрирование или хочет выбрать инструмент под свои специфические требования.

Рассмотрим наиболее распространённые панели с кратким раскрытие их технических возможностей.

Это бесплатная панель управления хостингом на VPS с возможностью платной поддержки. Встроенный установщик приложений «в 1 клик» Softaculous позволяет развернуть свыше 400 приложений, включая популярные CMS.

Ядро ПУ создано на основе BASH — нативной командной оболочки для администрирования Linux серверов, позволяющей повысить эффективность работы на Ubuntu, Debian и других. Панель управления Vesta поставляется с брандмауэром iPTables или fail2ban.

✅ Поддерживаемые ОС: Ubuntu, Debian, RHEL, Centos/RedHat.

Переходы по каталогам осуществляются командой “cp”.

Перейти к каталогу:

cp ./public_html

Вернуться на уровень вверх:

cp..

Вернуться на уровень вверх и перейти к каталогу:

cp ../public_html

Просмотреть содержимое текущего каталога:

ls

Посмотреть размер файлов и папок текущего каталога:

du -sh *

Обновления

Обновления панели управления Vesta могут проходить автоматически, но эта функция по умолчанию отключена. Все управление обновлениями осуществляется через соответствующее меню.

Когда выходит обновление, пакеты в данном разделе меню начинают подсвечиваться красным, а также появляется кнопка Обновить. При необходимости Вы делаете один клик и все готово.

Немного терпения и я вместе с Вами загляну в ближайшее будущее «богини». Вы ведь хотите увидеть какие «плюшки» готовят для Вас разработчики в ближайшем релизе панели Vesta?

Отчеты

Также, если Вы захотите изучить показатели процессора(ов), памяти, сети, диска(ов) и т.п., то сможете получить более развернутые данные по разным параметрам: технические характеристики сервера, какие запросы отправляются на веб-сервер и в БД, есть возможность сделать отчет по отправленным письмам и многое другое.

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

А для тех, кому этого недостаточно, есть возможность просмотра логов доменов вживую — меню WEB, кнопка ПОСМОТРЕТЬ ЛОГИ.

Платформа google cloud

представляет собой замечательную среду для развёртывания Node.js-приложений.

соответствующий раздел её документации.

Плюшки


Думаю, практически каждый программный продукт имеет свои особенности. О некоторых из них мы уже упомянули ранее, а вот есть те, которые я специально оставил на «десерт».

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

Первый из них — это волшебный, другим словом я просто не смогу передать удобство его UI, файловый менеджер. Как только Вы активируете плагин, появится пункт меню Файлы, при переходе на которое, откроется следующее окно:

Согласен, что первое впечатление может быть немножко преувеличено, но Вы ведь еще не видели набор доступных SHORTCUTS и даже не начали работать с самим менеджером файлов, правда?

Команда разработчиков и не скрывает, что горячие клавиши были заимствованы из великолепного файл менеджера GNU Midnight Commander. Ну правда, а почему не приметь то, что реально удобно? И поверьте мне, у Вас будет возможность убедится в этом самостоятельно.

Вторым платным расширением является SFTP Chroot. Этот плагин может быть более интересен тем из Вас, кто предоставляет услуги хостинга, а также делит свой сервер с другими пользователями. Далее мне бы хотелось привести цитату самого разработчика, касательно данной дополнительной «фичи» для повышения безопасности:

FTP протокол небезопасен, поскольку все пароли передаются в чистом виде без шифрования. Сидя в кафе на публичном Wi-Fi, есть риск, что данные кто-то перехватит. Чтобы включить SFTP, нужно выдать пользователю системный шелл, однако, это позволит юзеру просматривать не только его собственные каталоги, но и системные, вроде /etc, /sbin или /bin. Это не проблема, если сервер используется 2-3 разработчиками. А вот когда уже идет речь о том, чтобы выдать доступ людям, к которым нет полного доверия, появляется дилемма. Модуль SFTP Сhroot помогает ее решить. Если модуль активирован, то на всех аккаунтах без реального шелла (/sbin/nologin), включается особый режим SFTP соединения. Такие аккаунты могут увидеть файлы только в своей домашней директории и все.

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

Вы еще думаете над тем, какую панель выбрать? Тогда я продолжаю, и перехожу к самым «вкусным плюшкам» ближайшего релиза панели Vesta.

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

Также появится возможность получить бесплатный SSL сертификат от проекта Let’s Encrypt буквально в один клик. И как заверил меня сам skid это функционал уже на финальной стадии тестирования.

Не стану раскрывать всех деталей грядущего релиза, а лучше оставлю немного «пищи для размышлений» Вам, дорогие наши читатели. Все детали в конце публикации.

В качестве благодарности хочу перечислить по имени каждого из команды разработчиков этой поистине «богини»:

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

на проекте GitHub. Да и сами разработчики признают, что приятно удивлены интересом и желанием некоторых пользователей поддержать их проект.

Так держать, ребята!

P.S. Чтобы поддержать проект со своей стороны мы совместно с командой разработчиков решили предоставить каждому нашему клиенту, который арендует услугу облачный VPS возможность разово активировать оба коммерческих расширения панели Vesta совершенно бесплатно для одной услуги с доступом суперпользователя. Для этого после проведения заказа просто создайте тикет в отдел продаж и мы активируем для Вас плагин(ы).

P.P.S. Разработчики же со своей стороны решили также провести акцию и предоставить Вам возможность при заказе вечных версий лицензий платных расширений Vesta получить дополнительно 30% скидки. При оформлении заказа просто используйте купон HABR, который будет действовать до 15-го января.

Почта

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

При редактировании данных этого домена обратите, пожалуйста, внимание, что в поле «Ловушка почты» Вы по желанию можете указать почтовый аккаунт (не обязательно локальный) куда будет перенаправляться почта с несуществующих аккаунтов. По умолчанию там указан файл /dev/null, что означает лишь одно — вся поступающая почта должна удаляться.

Поехали дальше, настала очередь создать почтовый ящик. Выбираем необходимый почтовый домен и нажимаем кнопку ДОБАВИТЬ АККАУНТ.

Здесь можете раскрыть вкладку ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ и указать квоту по размеру почтового ящика в МБ, а также аккаунт для переадресации почты. Как обычно сохраняем указанные данные с помощью кнопки «Добавить».

Для работы с электронной почтой используется клиент Roundcube, кнопка которого (ОТКРЫТЬ ВЕБ-ПОЧТУ) становиться доступной в меню MAIL сразу после заведения в панель хотя бы одного почтового домена.

Права доступа

Для управления правами доступа могут понадобиться две команды: “chmod” и “chown”.

Первая задает права доступа для владельца, группы владельца и всех остальных, а вторая задает владельца файла/каталога.

Пример. Дать полные права на запись чтение и выполнение файла всем:

chmod 777 file.txt

Предисловие

Так как панель Vesta и в самом деле для меня была малознакома я начал собирать информацию. Нашел несколько неплохих публикаций, в том числе на ресурсе Хабрахабр, после чего даже задумался над тем, что же еще можно рассказать об этой панели, так как материала по ней в рунете реально достаточно. Но как же все может изменить один разговор!? После прочтения

я решил написать автору, и узнать его мнение не только о панели Vesta, но и в целом о нише бесплатных панелей управления хостингом. На мое удивление ответ не заставил себя долго ждать, а сам диалог продолжает длиться и сейчас… Много чего удалось обсудить, но это была лишь малая часть того, о чем еще предстоит поговорить. Да, скорей всего это материал для отдельной статьи, но не будем забегать наперед и вернемся к самой панели Vesta.

Работа с аргументами командной строки в node.js-скриптах

При запуске Node.js-скриптов им можно передавать аргументы. Вот обычный вызов скрипта:

node app.js


Передаваемые скрипту аргументы могут представлять собой как самостоятельные значения, так и конструкции вида ключ-значение. В первом случае запуск скрипта выглядит так:

node app.js flavio

Во втором — так:

node app.js name=flavio

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

Так, для того, чтобы получить доступ к аргументам командной строки, используется стандартный объект Node.js process. У него есть свойство argv, которое представляет собой массив, содержащий, кроме прочего, аргументы, переданные скрипту при запуске.

Первый элемент массива argv содержит полный путь к файлу, который выполняется при вводе команды node в командной строке.

Второй элемент — это путь к выполняемому файлу скрипта.

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

Перебор аргументов, имеющихся в argv (сюда входят и путь к node, и путь к выполняемому файлу скрипта), можно организовать с использованием цикла forEach:

process.argv.forEach((val, index) => {
  console.log(`${index}: ${val}`)
})

Если два первых аргумента вас не интересуют, на основе

argv

можно сформировать новый массив, в который войдёт всё из

argv

кроме первых двух элементов:

const args = process.argv.slice(2)


Предположим, при запуске скрипта, ему передали лишь один аргумент, в виде самостоятельного значения:

node app.js flavio

Обратиться к этому аргументу можно так:

const args = process.argv.slice(2)
args[0]

Теперь попробуем воспользоваться конструкцией вида ключ-значение:

node app.js name=flavio

При таком подходе, после формирования массива

args

, в

args[0]

окажется строка

name=flavio

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

, которая предназначена для облегчения работы с аргументами командной строки:

const args = require('minimist')(process.argv.slice(2))
args['name'] //flavio


Теперь рассмотрим вывод данных в консоль.

Резервное копирование

Панель управления Vesta имеет удобный веб-интерфейс для настройки резервного копирования на удаленный FTP/ SFTP сервер. Для этого переходим в меню BACKUP и с помощью клавиши

a

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

Резервное копирование бд

Сделать резервную копию базы данных MySQL можно двумя способами: без сжатия и со сжатием.

Бэкап базы без сжатия:

mysqldump -uимя_пользователя -p имя_базы > db_backup.sql

Бэкап со сжатием gzip:

mysqldump -uимя_пользователя -p имя_базы | gzip > db_backup.sql.gz

Система модулей node.js, использование команды exports


Поговорим о том, как использовать API

module.exports

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

. Общедоступный функционал модуля, с помощью команды

require

, могут использовать другие модули:

const library = require('./library')


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

library.js

, файл которого расположен в той же папке, в которой находится файл, импортирующий его.

Модуль, прежде чем будет смысл его импортировать, должен что-то экспортировать, сделать общедоступным. Ко всему, что явным образом не экспортируется модулем, нет доступа извне. Собственно говоря, API module.exports позволяет организовать экспорт того, что будет доступно внешним по отношению к модулю механизмам.

Экспорт можно организовать двумя способами.

Первый заключается в записи объекта в module.exports, который является стандартным объектом, предоставляемым системой модулей. Это приводит к экспорту только соответствующего объекта:

const car = {
  brand: 'Ford',
  model: 'Fiesta'
}
module.exports = car
//..в другом файле
const car = require('./car')

Второй способ заключается в том, что экспортируемый объект записывают в свойство объекта

exports

. Такой подход позволяет экспортировать из модуля несколько объектов, и, в том числе — функций:

const car = {
  brand: 'Ford',
  model: 'Fiesta'
}
exports.car = car


То же самое можно переписать и короче:

exports.car = {
  brand: 'Ford',
  model: 'Fiesta'
}

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

const items = require('./items')
items.car

Или так:

const car = require('./items').car


В чём разница между записью объекта в

module.exports

и заданием свойств объекта

exports

В первом экспортируется объект, который записан в module.exports. Во втором случае экспортируются свойства этого объекта.

Создание файлов и каталогов

Создать пустой файл:

Удаление файлов и папок

Удаление каталога делается командой “rmdir”:

rmdir catalog_name

Удаление файлов выполняется командой “rm”:

rm file.txt

Также можно делать групповое удаление файлов:

rm ./*

Удалит все файлы в текущем каталоге

rm -r ./*

Удалит все файлы рекурсивно, то есть и в текущем и во всех вложенных каталогах.

Установка

Не буду изменять своим привычкам — установлю на виртуальный сервер CentOS (также панель имеет поддержку Debian, Ubuntu) и подключусь к нему по SSH. Для этого, если Вы используете MacBook, запускаем Терминал и вводим следующую команду:

ssh root@xxx.xxx.xxx.xxx


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

Далее загружаем на сервер необходимые установочные файлы с помощью команды:

Функционал панелей управления

Наибольшее распространение получили панели управления, выполненные в виде интуитивно понятного графического веб-интерфейса. При помощи контрольной панели можно настроить сервер VDS/VPS, даже без основательных знаний и помощи системного администратора.

Хостинг для node.js-приложений

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

▍вывод в консоль результатов трассировки стека


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

console.trace()

Вот пример её использования:

const function2 = () => console.trace()
const function1 = () => function2()
function1()

Вот что произошло, когда я запустил этот код в режиме REPL:

Вывод

Администраторам необходимо тщательно подбирать контрольную панель для управления виртуальным сервером и веб-хостингом на его основе. Выбор оптимального варианта будет зависеть от потребностей конечного ресурса, поэтому важно изучить технические параметры ПУ, перед установкой.

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

Любая панель управления хостингом будет работать со 100% эффективностью только на базе надёжного сервера. VPS от Eternalhost — мощная и безопасная платформа с возможностью гибкой настройки под параметры любого хостинга.

Заключение

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

▍использование цвета при выводе данных в консоль

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

console.log('x1b[33m%sx1b[0m', 'hi!')


Если выполнить эту команду, например, в режиме REPL, текст

hi

будет выведен жёлтым цветом.

Такой подход, однако, не особенно удобен. Для вывода в консоль цветных надписей удобно будет воспользоваться специализированной библиотекой, например —

. Эта библиотека, помимо цветового форматирования текстов, поддерживает и другие способы их стилизации. Например, с её помощью можно оформить текст полужирным, курсивным или подчёркнутым шрифтом.

Для её установки из npm воспользуйтесь такой командой:

npm install chalk

Пользоваться ей можно так:

const chalk = require('chalk')
console.log(chalk.yellow('hi!'))

Пользоваться командой

chalk.yellow()

гораздо удобнее, чем escape-последовательностями, да и текст программы при таком подходе читать гораздо легче.

Для того чтобы узнать подробности о chalk, посмотрите страницу этой библиотеки на GitHub.

Вывод данных в консоль с использованием модуля console

Стандартный модуль Node.js

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

console

, используемый в браузерном JavaScript. Пожалуй, самый простой и самый широко используемый метод модуля

console

— это

console.log()

, который применяется для вывода передаваемых ему строковых данных в консоль. При этом, если передать ему объект, то он, перед выводом, будет преобразован к своему строковому представлению.

Методу console.log() можно передавать несколько значений:

const x = 'x'
const y = 'y'
console.log(x, y)

После выполнения этой последовательности инструкций в консоль попадёт и значение

x

, и значение

y

Для формирования сложных строк команда console.log() поддерживает использование подстановочных символов, которые, при выводе данных, заменяются на соответствующие им значения в порядке очерёдности.

Например, вот команда, которая выводит текст My cat has 2 years:

console.log('My %s has %d years', 'cat', 2)

Рассмотрим особенности подстановочных символов:


Вот ещё один пример использования подстановочных символов:

console.log('%O', Number)

Итоги

Сегодня мы поговорили о хостингах для Node.js-приложений, о REPL, о работе с командной строкой, о системе модулей Node.js. В следующий раз мы начнём обстоятельный разговор об npm, и, в частности, рассмотрим особенности файлов

package.jsonpackage-lock.json

Уважаемые читатели! Какие хостинги вы используете для своих Node.js-приложений?

Оцените статью
Хостинги