Установка ODataDB

Установка ODataDB

ODataDB - это кроссплатформенное приложение, реализованное на платформе веб-сервера Kestrel в ASP.NET Core.

Kestrel можно использовать отдельно или с обратным прокси-сервером, таким как IIS, Nginx или Apache.

Ниже приведены полезные ссылки на материалы по установке и настройке приложений ASP.NET Core в различных сценариях:

В данной статье приведены краткие руководства по установке ODataDB.

Установка ODataDB в Windows

  1. Включите компонент IIS.
  2. Установите пакет ASP.NET Core Runtime 3.1 Hosting Bundle для ODataDB 1.x и ASP.NET Core Runtime 5.0 Hosting Bundle для ODataDB 2.x.
  3. Перезапустите IIS.
  4. Скопируйте подкаталог odatadb из загруженного пакета ODataDB на локальный диск. Например, в папку C:\inetpub.
  5. Добавьте строки подключения к вашим базам данных в файл конфигурации appsettings.Production.json.
  6. Создайте пул приложений ODataDB.
  7. Создайте приложение или веб-сайт ODataDB.

Создание пула приложений ODataDB

Для создания пула приложений откройте Диспетчер служб IIS (IIS Manager), выберите Пулы приложений (Application Pools), и выберите действие Добавить пул приложений... (Add Application Pool...).

Используйте представленные ниже значения:

ODataDB Installation on Windows - Creating Application Pool

  • Name: odatadb
  • .NET CLR version: No Managed Code
  • Managed pipeline code: Integrated

Создание веб-сайта ODataDB

Используйте этот подход для создания поддоменов, как, например, odatadb.contoso.com.

Также, используйте этот подход для создания локального веб-сайта, доступного по URL типа http://odatadb.

В последнем случае, добавьте следующую строку в файл c:\windows\system32\drivers\etc\hosts:

127.0.0.1 odatadb

Для создания веб-сайта выберите узел Сайты (Sites) и выберите действие Добавить веб-сайт... (Add Website...)

Используйте следующие значения:

ODataDB Installation on Windows - Creating Website

Помните, что важно выбрать пул приложений odatadb, созданный на предыдущем этапе.

Для тестирования локального веб-сайта введите URL:

http://odatadb

Вы должны видеть домашнюю страницу примеров. Попробуйте. ODataDB загружает данные из онлайн базы данных SQL Server.

Например, попробуйте работу с таблицей s02_cashbook:

ODataDB Website - s02.cashbook

Настройка сертификата HTTPS в Windows

Не используйте ODataDB по протоколу HTTP, т.к. ODataDB использует метод аутентификации Basic, при котором логины и пароли не шифруются.

Всегда включайте протокол HTTPS и перенаправляйте запросы HTTP на HTTPS.

Ниже приведены шаги по созданию самозаверенного сертификата.

  1. Откройте Windows PowerShell (Admin) и выполните команду:
New-SelfSignedCertificate -NotBefore (Get-Date) -NotAfter (Get-Date).AddYears(5) -DnsName "localhost", "odatadb" -KeyAlgorithm "RSA" -KeyLength 2048 -HashAlgorithm "SHA256" -CertStoreLocation "Cert:\LocalMachine\My" -KeyUsage KeyEncipherment -FriendlyName "ODataDB Certificate" -TextExtension @("2.5.29.19={critical}{text}","2.5.29.37={critical}{text}1.3.6.1.5.5.7.3.1")

Эта команда создает самозаверенный сертификат для localhost и odatadb. См. подробности в статье New-SelfSignedCertificate

  1. Откройте оснастку certlm.msc и скопируйте сертификат ODataDB из папки личных сертификатов (Personal Certificates) в папку Доверенные корневые центры сертификации (Trusted Root Certification Authorities).

  2. Откройте Диспетчер служб IIS (IIS Manager), выберите Default Web Site и его Привязки... (Bindings...).
    Выберите https, нажмите Изменить... (Edit...), и выберите сертификат ODataDB в списке сертификатов SSL. Нажмите OK.

Для отмены изменений, восстановите начальный сертификат, а потом удалите сертификат ODataDB, используя оснастку certlm.msc.

Создание приложения ODataDB

Используйте этот метод для создания приложения типа www.contoso.com/odatadb или localhost/odatadb.

Чтобы создать приложение, выберите узел требуемого веб-сайта, кликните правой кнопкой мыши, и выберите действие Добавить приложение... (Add Application...).

Затем используйте следующие значения:

ODataDB Installation on Windows - Creating Application

Помните, что важно выбрать пул приложений odatadb, созданный на предыдущем этапе.

При использовании ODataDB как приложения IIS требуется заменить строки <base href="/"> на <base href="/odatadb/"> в следующий файлах:

  • C:\inetpub\odatadb\wwwroot\edit.htm
  • C:\inetpub\odatadb\wwwroot\edit-trip-pin.htm
  • C:\inetpub\odatadb\wwwroot\index.htm

Для тестирования приложения на вашем компьютере, введите URL:

http://localhost/odatadb

Вы должны видеть домашнюю страницу примеров. Попробуйте. ODataDB загружает данные из онлайн базы данных SQL Server.

Например, попробуйте работу с таблицей s02_cashbook:

ODataDB Application - s02.cashbook

Установка ODataDB в Linux

Ниже приведены подробные руководства:

В целом, требуется выполнение следующих шагов:

  1. Установите ASP.NET Core Runtime 3.1 для ODataDB 3.x и ASP.NET Core Runtime 5.0 для ODataDB 4.x.
  2. Скопируйте подкаталог odatadb из загруженного пакета ODataDB в папку /var/www.
  3. Добавьте строки подключения к вашим базам данных в файл конфигурации appsettings.Production.json.
  4. Проверьте и измените, по необходимости, порт по умолчанию 5002 на требуемый в файле appsettings.Production.json.
  5. Создайте файл службы для управления Kestrel и сделайте службу.
  6. Создайте поддомен ODataDB.
  7. Настройки сертификат HTTPS.

Создание файла службы для управления Kestrel

По ссылке приведено полное руководство: Создание файла службы

Вы можете создать файл /etc/systemd/system/kestrel-odatadb.service со следующими строками:

[Unit]
Description=odatadb

[Service]
WorkingDirectory=/var/www/odatadb
ExecStart=/usr/bin/dotnet /var/www/odatadb/odatadb.dll
Restart=on-failure
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-odatadb
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target

После создание файла, активируйте службу:

sudo systemctl enable kestrel-odatadb.service
sudo systemctl start  kestrel-odatadb.service
sudo systemctl status kestrel-odatadb.service

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

curl http://localhost:5002/v4/mssql-023/s02_cashbook

Создание поддомена ODataDB

Для создания поддомена выполните следующие шаги:

  1. Создание запись A в DNS вашего домена.
  2. Добавьте секцию поддомена в файл конфигурации домена.

Ниже приведена конфигурация поддомена odatadb.savetodb.com для Nginx:

server {

    server_name odatadb.savetodb.com;

    location / {
        proxy_pass         http://localhost:5002;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

Настройка сертификата HTTPS в Linux

Мы рекомендуем использовать этот ресурс: Secure HTTP Traffic with Certbot