Установка 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
# Перезапуск службы через 10 секунд, если служба dotnet завершилась с ошибкой:
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.

Этот веб-сайт использует куки. Продолжая использовать веб-сайт, Вы принимаете условия Политики защиты персональных данных.