# Развёртывание веб-приложения Node.js, Ruby, Python, Java на Джино

Для развертывания веб-приложения Node.js, Ruby, Python и Java мы предоставляем услугу «Поддержка веб-приложений». Её можно подключить на хостинг-контейнерах Джино. Хостинг-контейнер (opens new window) — это аккаунт виртуального хостинга с поддержкой интерпретаторов Node.js, Ruby, Python, Java. Для быстрого и удобного развёртывания веб-приложения вам будет предоставлен настроенный хостинг с веб-сервером, логированием, базой данных, FTP, SFTP и SSH.

# Создайте хостинг-контейнер

Примечание

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

Для создания хостинг-контейнера зайдите в контрольную панель (opens new window) и нажмите «Создать новый контейнер».

Обратите внимание

Если вы создали новый аккаунт или ранее не пользовались нашим хостингом, при создании хостинг-контейнера у вас будет возможность выбрать деморежим. Вы сможете бесплатно пользоваться сервисом 10 дней. В течение этого времени работа хостинг-контейнера будет иметь ограничения — подробнее про ограничения деморежима читайте в этом разделе (opens new window). Вы можете переключиться в активный режим, не дожидаясь окончания деморежима. Для этого нужно пополнить баланс.

Можно использовать для хостинг-контейнера своё название. Рекомендуем для разных сайтов создавать отдельные хостинг-контейнеры. Поскольку нагрузка на сайты будет перераспределена между хостинг-контейнерами, а безопасность проектов будет выше.

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

# Привяжите домен к хостинг-контейнеру

Обратите внимание

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

Вы можете подключать не только домен, но и поддомены, в том числе созданные в сторонних компаниях. Можно зарегистрировать (opens new window) новое доменное имя или привязать (opens new window) уже существующее. Для этого зайдите в нужный хостинг-контейнер и перейдите в раздел Доменыуправление доменами.

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

Примечание

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

# Подключите SSL-сертификат для домена или технического адреса

SSL-сертификат позволяет установить безопасное соединение с вашим сайтом. Вы можете подключить бесплатный сертификат Let's Encrypt. Выберите доменное имя в разделе Домены и перейдите на вкладку «SSL». Здесь вы можете выбрать бесплатный сертификат или любой другой, купленный в Джино.Магазине (opens new window).

# Настройте папку для хранения статики веб-приложения

В папке для хранения статики размещаются статические файлы — HTML, CSS, JavaScript, изображения и другие ресурсы, которые используются в веб-приложении и должны быть доступны напрямую через HTTP-запросы. Эти файлы не требуют обработки сервером и могут быть напрямую отданы клиенту без каких-либо изменений.

Например, HTML-файлы, содержащие разметку страниц, файлы CSS для стилей, JavaScript-файлы для клиентской логики, изображения, видео, аудио.

После подключения услуги «Поддержка веб-приложений» папка для статики появится в разделе УправлениеНастройки веб-сервера. Папка по умолчанию: domains/ваш_домен/public_html. Вы можете изменить папку в соответствии со структурой директорий вашего веб-приложения.

# Базы данных

Примечание

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

На хостинг-контейнерах предоставляется поддержка локальных баз данных MySQL. При создании хостинг-контейнера, в том числе в демо-режиме, MySQL подключается автоматически. Вы можете изменить объем данных MySQL от 30 до 80 Гб и количество баз от 100 до 500.

Для управления услугой MySQL зайдите в контрольную панель Джино.Хостинга (opens new window), нажмите на нужный контейнер и перейдите в раздел Услуги. В пункте «Базы данных» подключите MySQL или измените объем или количество базы данных.

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

Получить данные можно в разделе УправлениеТехническая информация. Пароль для пользователей задаётся в настройках «Управление / Управление MySQL». Выберите имя пользователя и задайте пароль.

Обратите внимание

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

Подробную инструкцию по работе с БД читайте в этом разделе (opens new window).

# Загружайте файлы веб-приложения на хостинг-контейнер

Для загрузки файлов на хостинг контейнер можно использовать SFTP\FTPS или SSH. Использовать FTP без шифрования небезопасно — пароль могут украсть злоумышленники. Поэтому данной функцией допустимо пользоваться только в тех случаях, когда нет альтернативных способов загрузки файлов на хостинг-контейнер.

# Загрузка файлов по SFTP/FTPS

Краткое описание FTPS или SFTP:

  1. FTPS — это расширение протокола FTP (File Transfer Protocol) для защищённого соединения с сервером с использованием протоколов SSL или TLS. Он позволяет передавать файлы по шифрованному соединению. На Джино используется новая версия FTPS — FTPES (FTP over Explicit SSL/TLS). При подключении к серверу по протоколу FTPES порт остается стандартным (21). Минус этого способа загрузки — нельзя использовать ssh-ключ для авторизации.

  2. SFTP — это протокол передачи файлов, являющийся расширением протокола SSH (Secure Shell). Он обеспечивает безопасное соединение между клиентом и сервером. При этом используется шифрование данных и аутентификация с помощью ключей SSH. В отличие от FTPS, SFTP не связан с протоколом FTP и использует отдельный порт для передачи файлов и выполнения операций на удалённом сервере (2222). Вы можете использовать ssh-ключ для авторизации, в этом случае пароль не нужен. Именно данный протокол мы рекомендуем использовать как бесплатную альтернативу SSH.

Если вы остановились на SFTP и хотите вместо пароля использовать SSH-ключ, читайте инструкцию по его созданию в этом разделе.

Пользователь для подключения по SFTP\FTPS создается автоматически. Возможность загрузки файлов будет доступна после создания хостинг-контейнера в деморежиме и в полном режиме. Инструкцию по настройке FTP-клиентов читайте в этом разделе (opens new window). Пароль для доступа к FTP совпадает c паролем для входа в панель Джино. Узнать настройки FTP можно в разделе УправлениеТехническая информация. Поменять пароль можно в любой момент после создания хостинг-контейнера.

Для доступа также можно создавать отдельных пользователей, ограниченных определённой директорией. Подробную информацию по работе FTP читайте в этом разделе (opens new window).

# Загрузка файлов по SSH

Для загрузки по SSH у вас должна быть подключена услуга «Поддержка SSH (opens new window)», а ваш текущий IP должен быть указан в списке разрешенных в контрольной панели в разделе УправлениеНастройки SSH. Также вы можете просто выключить ограничение по IP.

Для соединения с сервером из ОС Windows необходима специальная программа — SSH-клиент. Наиболее распространенный клиент под Windows на данный момент — PuTTY (opens new window). Пользователи Linux и MacOS для этого могут использовать стандартный терминал своей системы (команда ssh логин@логин.myjino.ru). Узнать свой технический домен можно в разделе настроек хостинг-контейнера УправлениеТехническая информация.

Параметры подключения следующие:

  • Имя сервера (Host Name в PuTTY): ваш_домен или логин.myjino.ru или 123xyz.hosting.myjino.ru;
  • Порт: по умолчанию (22);
  • Логин: ваш логин на Джино;
  • Пароль: по умолчанию такой же, как для доступа в контрольную панель. Мы рекомендуем изменить его в разделе УправлениеНастройки SSH.

Если ваши файлы кодированы в UTF-8, то в настройках клиента нужно указать именно эту кодировку. Также сразу после подключения необходимо выполнить в терминале следующую команду:

LANG=ru_RU.utf8

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

# Запуск HelloWorld-приложений

Обратите внимание

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

# Пример запуска HelloWorld-приложений на Python

Для запуска простого приложения на Python создайте в домашней папке вашего сайта файл passenger_wsgi.py с таким содержимым:

import sys
def application(environ, start_response):
    start_response('200 OK', [('Content-type', 'text/plain')])
    return [b"Hello, World!"]

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

# Пример запуска HelloWorld-приложений на Node.js

Для запуска простого приложения на Node.js создайте в домашней папке вашего сайта файл app.js с таким содержимым:

const http = require('http')

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'})
  res.end('Hello, World!')
}).listen()

# Пример запуска HelloWorld-приложений на Ruby

Для запуска простого приложения на Ruby создайте в домашней папке вашего сайта файл Создайте файл config.ru с таким содержимым:

class App
  def call(env)
    headers = {
      'Content-Type' => 'text/html'
    }
    response = ['Hello, World!']
    [200, headers, response]
  end
end

run App.new

# Пример запуска HelloWorld-приложений на Java

Для примера возьмём простейшее приложение на фреймворке Spring Boot, созданное по этой инструкции (opens new window):

  1. Создайте проект с помощью Spring Initializr (opens new window) (выберите версию Java 20), создайте файлы GreetingController.java и greeting.html, как описано в инструкции, и соберите jar-файл.

  2. В контрольной панели Джино перейдите в хостинг-контейнер и для нужного домена выберите интерпретатор GLS (Generic Language Support). Запомните значение «Домашней папки» для этого домена.

  3. Перейдите в раздел «Файловый менеджер» и загрузите в домашнюю папку домена получившийся jar-файл. Переименуйте его в application.jar.

  4. В той же папке создайте файл start.sh с правами 0755 и таким содержимым:

    #!/bin/bash
    
    exec java -jar application.jar --server.port=$PORT --server.tomcat.threads.max=50

Здесь $PORT — это переменная окружения, в ней хранится номер порта, на котором приложение должно запустить веб-сервер. Нам необходимо передать это значение в приложение, и в случае со Spring Boot мы используем для этого параметр --server.port. Для других приложений способ передачи может отличаться.

Параметром --server.tomcat.threads.max мы задаём максимальное количество потоков, которое может создать веб-сервер, потому что на хостинге это значение ограничено.

  1. Перейдите в браузере по адресу http://ваш_домен/greeting. Если всё сделано правильно, на открывшейся странице появится сообщение «Hello, World!»

# Описание особенностей работы CGI и SSI на хостинге Джино

Описание особенностей работы CGI и SSI на хостинге Джино читайте в этом разделе (opens new window)