Установка ODataDB
ODataDB — это кроссплатформенное приложение, разработанное на базе веб-сервера 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
В этой статье представлены краткие руководства по установке ODataDB.
Установка ODataDB в Windows
- Включите компонент IIS.
- Установите пакет ASP.NET Core Runtime 8.0 Hosting Bundle.
- Перезапустите IIS.
- Скопируйте подкаталог
odatadb
из загруженного пакета ODataDB на локальный диск, например, в папкуC:\inetpub
. - Добавьте строки подключения к вашим базам данных в файл конфигурации appsettings.
- Создайте пул приложений ODataDB.
- Создайте приложение или веб-сайт ODataDB.
Ниже приведены комментарии к шагам 6-7.
Создание пула приложений ODataDB
Чтобы создать пул приложений, откройте Диспетчер служб IIS (IIS Manager), выберите Пулы приложений (Application Pools) и выберите действие Добавить пул приложений... (Add Application Pool...).
Используйте следующие значения:
- Name:
odatadb
- .NET CLR version:
No Managed Code
- Managed pipeline code:
Integrated
Создание веб-сайта ODataDB
Используйте этот подход для создания поддоменов, таких как odatadb.contoso.com
, или локального домена odatadb
, доступного по адресу https://odatadb/.
В последнем случае добавьте следующую строку в файл c:\windows\system32\drivers\etc\hosts
:
127.0.0.1 odatadb
Чтобы создать веб-сайт, выберите узел Сайты (Sites) и выберите действие Добавить веб-сайт... (Add Website...).
Используйте следующие значения:
Не забудьте выбрать пул приложений odatadb
, созданный на предыдущем этапе.
Для тестирования локального веб-сайта введите URL:
http://odatadb/
Вы должны увидеть домашнюю страницу.
Например, попробуйте работу с таблицей cashbook
примера mssql-023
, размещенного в онлайн базе данных SQL Server:
Настройка сертификата HTTPS в Windows
Не используйте ODataDB по протоколу HTTP, так как браузеры передают логины и пароли в открытом виде.
Всегда включайте протокол HTTPS и перенаправляйте запросы HTTP на HTTPS.
Вот шаги по созданию самозаверенного сертификата.
- Откройте 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.
Откройте оснастку
certlm.msc
и скопируйте сертификат ODataDB из папки личных сертификатов (Personal Certificates) в папку Доверенные корневые центры сертификации (Trusted Root Certification Authorities).Откройте Диспетчер служб 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
, созданный на предыдущем этапе.
Для тестирования приложения на вашем компьютере введите URL:
http://localhost/odatadb/
Вы должны увидеть домашнюю страницу примеров. Попробуйте. ODataDB загружает данные из онлайн базы данных SQL Server.
Например, попробуйте работу с таблицей s02_cashbook
:
Обратите внимание, что ODataDB заменяет строки <base href="/">
на <base href="/odatadb/">
для приложений IIS.
Установка ODataDB в Linux
Ниже приведены подробные руководства:
В целом, выполните следующие шаги:
- Установите ASP.NET Core Runtime 8.0.
- Скопируйте подкаталог
odatadb
из загруженного пакета ODataDB в папку/var/www
. - Добавьте строки подключения к вашим базам данных в файл конфигурации appsettings.
- Проверьте и измените, при необходимости, порт по умолчанию 5002 на требуемый в файле appsettings.
- Создайте файл службы для управления Kestrel и активируйте службу.
- Создайте поддомен ODataDB.
- Настройте сертификат HTTPS.
Ниже приведены комментарии к шагам 5-7.
Создание файла службы для управления 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/cashbook
Создание поддомена ODataDB
Чтобы создать поддомен, выполните следующие шаги:
- Создайте запись A в DNS вашего домена.
- Добавьте секцию поддомена в файл конфигурации домена.
Вот пример конфигурации поддомена 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.