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