Установка DBGate

Установка DBGate

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

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

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

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

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

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

Ниже приведены комментарии к шагам 6-7.

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

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

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

Установка DBGate на Windows - Создание пула приложений

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

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

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

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

127.0.0.1 dbgate

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

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

Установка DBGate на Windows - Создание веб-сайта

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

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

http://dbgate/

Вы должны видеть домашнюю страницу.

Например, попробуйте работу с таблицей cashbook примера mssql-023, размещенного в онлайн базе данных SQL Server:

Веб-сайт DBGate - s02.cashbook

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

Не используйте DBGate по протоколу HTTP, т.к. браузеры отсылают логины и пароли в открытом виде.

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

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

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

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

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

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

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

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

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

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

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

Установка DBGate на Windows - Создание приложения

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

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

http://localhost/dbgate/

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

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

Приложение DBGate - s02.cashbook

С сведению, DBGate заменяет строки <base href="/"> на <base href="/dbgate/"> для приложений IIS.

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

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

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

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

Ниже приведены комментарии к шагам 5-7.

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

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

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

[Unit]
Description=dbgate

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

[Install]
WantedBy=multi-user.target

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

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

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

curl http://localhost:5003/api/mssql-023/cashbook

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

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

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

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

server {

    server_name dbgate.savetodb.com;

    location / {
        proxy_pass         http://localhost:5003;
        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