Установка веб-платформы Falcon Space на сервер/хостинг

Введение

Платформу можно ставить на Windows Server 2019+ (например, 1Cloud.ru).

Есть 2 модификации платформы: 

  • MVC - на базе ASP.NET MVC 5
  • Core - на базе ASP.NET Core (в корне проекта есть appsettings.json). 

Модификации отличаются структурой каталогов. 

Для установки на Windows Server минимальные требования (в скобках оптимальные для начала): 

  • 3ГБ RAM  (4Гб RAM)
  • 30Гб HDD (60Гб SSD)
  • 2 ядра CPU 

Требуемый софт на сервере

  • MS SQL Server 2016+ (подойдет бесплатная версия SQL Server Express Edition).
  • IIS Manager 8+
  • .NET 4.6

Порядок установки приложения Falcon Space на сервере

Создать базу путем Restore backup из образа чистовой базы blank2, либо из другой базы.

Создать пользователя SQL и дать права на созданную базу данных (схема db_owner).

Скопировать файлы веб-приложения Falcon Space в папку на сервере (например: C:\sites\projectName)

Прописать в файле appsettings.json (или в web.config для MVC версии) подключение к БД (в Connection Strings), имя куки, ключ лицензии(в разделе appSettings), прописанный в лицензионном договоре.

Создать сайт в IIS:

  • привязка (binging) к домену (4 привязки - www и без www, https и без).
  • путь к папке с веб-приложением
  • создать и привязать пул к приложению. Для Core приложения лучше создавать отдельный пул с типом No Managed Code (в настройках пула Advanced Settings также указать LoadUserProfile = true - если этого не сделать, то пользователя постоянно будет выбрасывать из авторизованной зоны). Для MVC - обычный пул типа .NET 4.0

Дать права на запись в папку /uploads (для Core - /wwwroot/uploads) для IIS_IUSRS через File Explorer (Мой компьютер).

Проверяем, что все работает - запускаем домен и входим под админом (пароль админа будет получен при передачи бекапа БД).

Примечание: Ваш домен должен указывать на IP адрес сервера. Для этого необходимо прописать DNS зону для домена (2 записи типа A с IP сервера приложения - @ и www). Чтобы уменьшить время обновления установить TTL домена в минимальное значение (3600). 

Проверить связку домен - IP можно через команду ping: Win +R > cmd > ping mydomain.ru

Иногда ASP.NET по умолчанию не установлен в IIS. В этом случае идем в Администрирование / Диспетчер серверов (Server manager) / Добавить роль или компонент и ставим ASP.NET в разделе Веб-компонентов. После установки перезагрузить IIS. 

Также необходимо, чтобы был установлен на сервере модуль URL Rewrite для IIS (просто ставим и перезагружаем IIS). https://www.iis.net/downloads/microsoft/url-rewrite

Если вы ставите Core версию на Windows сервер, то понадобится модуль .NET Core 3.1 - https://dotnet.microsoft.com/en-us/download/dotnet/3.1  (скачиваем Windows Bundle Hosting версию). 

Либо ищем через все версии .NET - https://dotnet.microsoft.com/en-us/download, ссылка "all .net versions", и там .NET Core 3.1

Установка через панель Plesk на хостинге (например, reg.ru)

  1. Создаем домен в разделе Сайты
  2. В настройках ASP.NET указываем версию 4.7
  3. В разделе Базы данных создаем базу данных MS SQL 
  4. Создаем пользователя FTP и подключаемся через FTP клиент. 
  5. Копируем через FTP бекап базы данных и выполняем операцию Восстановление БД из бекапа
  6. По FTP копируем все файлы приложения в папку сайта. 
  7. Прописываем в файле web.config (для Core версии - appsettings.json) подключение к БД, имя куки, ключ лицензии, прописанный в лицензионном договоре
  8. В Файлы даем права редактирования на папку /uploads для пользователя Пользователь пула 
  9. После создания вы можете также сделать Lets Encrypt для https версии сайта (бесплатный SSL для домена).
  10. В DNS прописываем IP адрес, соответствующий сайту

Примечание: для хранения сессий пользователей на диске, необходимо создать папку DataProtectionStorage (дать доступ процессу пула на запись), а также файлы certificate.json и pfx сертификат. Как создать сертификат (Create self signed sertificate)

Обновление экземпляра Falcon Space

Получаем версию платформы по FTP (версия Core будет иметь следующий вид 2023-09-28.cr, MVC версия - 2023-09-28).. 

Как понять какая у меня версия? Если в корне у вас есть папка wwwroot и файл appsettings, то у вас Core версия. В противном случае - у  вас MVC версия.

Распаковываем архивы во временную папку. 

Перед обновлением создаем бекап существующего сайта - копируем папку сайта. 

Для MVC версии - из архива _mvc....zip просто заменяем содержимое в папке сайта.

Для Core версии:

  • Переименовываем файл /app_offline1.html в app_offline.html - это поставит заглушку на сайт и позволит заменять файлы проекта (операционная система не будет занимать файлы).
  • В корень папки сайта заливаем содержимое архива _core_....zip
  • В папке wwwroot заменяем файлы из архива _corewwwroot_....zip
  • Переименовываем файл /app_offline.html в /app_offline.html обратно 

Примечание: Обновляем все файлы из свежей версии, кроме:

  • папки uploads - в ней лежат рабочие файлы проекта (картинки, документы и т.д.)
  • web.config (или appsettings.json), urlrewrite.config - здесь хранятся настройки приложения
  • manifest.json, webmanifest - файлы манифеста PWA приложения
  • папка /app_data - системная папка с данными

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

Примечания по переносу с хостинга на сервер

При переносе с хостинга на сервер возникают нюансы (из-за доп. настроек на хостинге).

Необходимо убрать из web.config следующие настройки: 

  • убрать настройку [modsecurity enabled="false"][/modsecurity]
  • убрать параметр tempDirectory (путь к компиляции) в теге compilation.

Если сайт все равно не запускается, то ставим в web.config и смотрим с сервера, какое сообщение ошибки выдается при запуске сайта. 

Иногда возникает такая ошибка: This configuration section cannot be used at this path. This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault="Deny"), or set explicitly by a location tag with overrideMode="Deny" or the legacy allowOverride="false".

Здесь решение - https://stackoverflow.com/questions/9794985/config-error-this-configuration-section-cannot-be-used-at-this-path

Плюсы и минусы хостинга по сравнению с сервером VPS

Плюсы хостинга:

  • сильно дешевле
  • управление через панель Plesk (не нужно навыков администрирования Windows Server)
  • не нужно настраивать первоначально сервер, ставить SQL Server и т.д.
  • у хостинга есть техподдержка, которая может помощь по решению проблем с хостингом (на сервере техподдержка может помочь только платно по часам). 
  • автоматические бекапы с хранением 30 дней (на reg.ru)

Минусы хостинга: 

  • нет возможности ставить на сервер дополнительный софт (например КриптоПро), делать скрипты по обслуживанию бекапов и т.д. 
  • нет возможности управлять настройками SQL Server
  • нет возможности проводить диагностику через спецзапросы DMV (нет прав на server viewstate)
  • есть ограничения по возможности наращивания мощностей (CPU, память, диск).
  • нет возможности делать дополнительные консольные приложения. 

Хороший вариант - начать с хостинга. Как только база разрастется, запросы будут требовать оптимизации и диагностики - переехать на сервер VPS с более мощными параметрами.

Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK