Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Установка веб-платформы 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 (для MVC версии - обычный пул типа .NET 4.0)
В настройках пула Advanced Settings также указать:
У пула ставим в AdvancedSettings:
- General / Start mode = always running
- ProcessModel / Load User Profile=true (если этого не сделать, то пользователя постоянно будет выбрасывать из авторизованной зоны)
- ProcessModel / Idle timeout = 0
- Rapid Fail Protection / Failure Interval = 2
- Rapid Fail Protection / Maximum Failures = 100
- Recycling / Regular Time Interval = 1740
Дать права на запись в папку /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)
- Создаем домен в разделе Сайты
- В настройках ASP.NET указываем версию 4.7
- В разделе Базы данных создаем базу данных MS SQL
- Создаем пользователя FTP и подключаемся через FTP клиент.
- Копируем через FTP бекап базы данных и выполняем операцию Восстановление БД из бекапа
- По FTP копируем все файлы приложения в папку сайта.
- Прописываем в файле web.config (для Core версии - appsettings.json) подключение к БД, имя куки, ключ лицензии, прописанный в лицензионном договоре
- В Файлы даем права редактирования на папку /uploads для пользователя Пользователь пула
- После создания вы можете также сделать Lets Encrypt для https версии сайта (бесплатный SSL для домена).
- В 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 с более мощными параметрами.
Google поиск по нашей документации
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта