Установка DBGate
DBGate - это кроссплатформенное приложение, реализованное на платформе веб-сервера Kestrel в ASP.NET Core.
Kestrel можно использовать отдельно или с обратным прокси-сервером, таким как IIS, Nginx или Apache.
Ниже приведены полезные ссылки на материалы по установке и настройке приложений ASP.NET Core в различных сценариях:
- Размещение ASP.NET Core в Windows со службами IIS
- Среда размещения ASP.NET Core в операционной системе Linux с Nginx
- Размещение ASP.NET Core в операционной системе Linux с Apache
- Реализация веб-сервера Kestrel в ASP.NET Core
В данной статье приведены краткие руководства по установке DBGate.
Установка DBGate в Windows
- Включите компонент IIS.
- Установите пакет ASP.NET Core Runtime 8.0 Hosting Bundle.
- Перезапустите IIS.
- Скопируйте подкаталог dbgate из загруженного пакета DBGate на локальный диск. Например, в папку C:\inetpub.
- Добавьте строки подключения к вашим базам данных в файл конфигурации appsettings.
- Создайте пул приложений DBGate.
- Создайте приложение или веб-сайт DBGate.
Ниже приведены комментарии к шагам 6-7.
Создание пула приложений DBGate
Для создания пула приложений откройте Диспетчер служб IIS (IIS Manager), выберите Пулы приложений (Application Pools), и выберите действие Добавить пул приложений... (Add Application Pool...).
Используйте представленные ниже значения:
- 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, созданный на предыдущем этапе.
Для тестирования локального веб-сайта введите URL:
http://dbgate/
Вы должны видеть домашнюю страницу.
Например, попробуйте работу с таблицей cashbook
примера mssql-023
, размещенного в онлайн базе данных SQL Server:
Настройка сертификата HTTPS в Windows
Не используйте DBGate по протоколу HTTP, т.к. браузеры отсылают логины и пароли в открытом виде.
Всегда включайте протокол HTTPS и перенаправляйте запросы HTTP на HTTPS.
Ниже приведены шаги по созданию самозаверенного сертификата.
- Откройте 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
Откройте оснастку
certlm.msc
и скопируйте сертификат DBGate из папки личных сертификатов (Personal Certificates) в папку Доверенные корневые центры сертификации (Trusted Root Certification Authorities).Откройте Диспетчер служб 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, созданный на предыдущем этапе.
Для тестирования приложения на вашем компьютере, введите URL:
http://localhost/dbgate/
Вы должны видеть домашнюю страницу примеров. Попробуйте. DBGate загружает данные из онлайн базы данных SQL Server.
Например, попробуйте работу с таблицей s02/cashbook:
С сведению, DBGate заменяет строки <base href="/">
на <base href="/dbgate/">
для приложений IIS.
Установка DBGate в Linux
Ниже приведены подробные руководства:
- Размещение ASP.NET Core в операционной системе Linux с Nginx
- Размещение ASP.NET Core в операционной системе Linux с Apache
В целом, требуется выполнение следующих шагов:
- Установите ASP.NET Core Runtime 8.0.
- Скопируйте подкаталог dbgate из загруженного пакета DBGate в папку /var/www.
- Добавьте строки подключения к вашим базам данных в файл конфигурации appsettings.
- Проверьте и измените, по необходимости, порт по умолчанию 5003 на требуемый в файле appsettings.
- Создайте файл службы для управления Kestrel и сделайте службу.
- Создайте поддомен DBGate.
- Настройки сертификат 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
Для создания поддомена выполните следующие шаги:
- Создание запись A в DNS вашего домена.
- Добавьте секцию поддомена в файл конфигурации домена.
Ниже приведена конфигурация поддомена 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