Перейти к основному содержимому

1 запись с тегом "Asp Net Core"

Посмотреть все теги

Развертывание приложения .NET Core на Ubuntu 24.04

· 3 мин. чтения
Дмитрий Киверин
Дикий программист

Приложения Asp .NET Core обладают привлекательными достоинствами и несмотря на то, что технология .NET Core является разработкой Microsoft, традиционно ассоциируемой со средами Windows, использование таких приложений на Linux, позволяет получить выгодные преимущества:

  • Кроссплатформенная совместимость

  • Эффективность затрат

  • Производительность и масштабируемость

  • Контейнеризация и оркестровка

  • Экосистема с открытым исходным кодом

  • Безопасность и стабильность

Установка пакета SDK для .NET или среды выполнения .NET в Ubuntu

Добавление нового репозитория программного обеспечения

Обновить систему

sudo apt update

Уствновить пакет software-properties-common

sudo apt install software-properties-common

Добавить репозиторий

sudo add-apt-repository ppa:dotnet/backports

Установка пакета SDK или среды выполнения

Пакет SDK позволяет разрабатывать приложения с помощью .NET

к сведению

При установке пакета SDK для .NET не нужно дополнительно устанавливать соответствующую среду выполнения.

sudo apt-get update && sudo apt-get install -y dotnet-sdk-9.0

Если не планируется разработка приложений, то можно установить только среду выполнения ASP.NET Core, которая позволяет запускать приложения, созданные с помощью версии .NET без поддержки среды выполнения.

sudo apt-get update && sudo apt-get install -y aspnetcore-runtime-9.0

Если поддержка ASP.NET Core не нужна можно установить только среду выполнения .NET

sudo apt-get install -y dotnet-runtime-9.0

Проверить установленную версию .NET можно с помощью следующей команды

dotnet --version

Создание приложения с использованием .NET

Для создания нового приложения с именем MyApp используется команда:

dotnet new webapp -o MyApp --no-https

Затем перейдите в каталог MyApp

cd MyApp

и соберите приложение с помощью команды build:

dotnet build

Опубликуйте приложение .NET с помощью следующей команды:

sudo dotnet publish -c Release -o /var/www/ --runtime linux-x64

Создание демона Systemd для приложения .NET

Создайте файл systemd для управления .NET-приложением с помощью следующей команды:

sudo nano /etc/systemd/system/app.service

Добавьте следующую конфигурацию:

[Unit] 
Description=My .NET Core Application

[Service]
WorkingDirectory=/var/www/
ExecStart=/usr/bin/dotnet /var/www/MyApp.dll
Restart=always
# Перезапустить службу через 10 секунд, если служба dotnet аварийно завершает работу:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production

[Install]
WantedBy=multi-user.target

Сохраните и закройте файл, затем перезагрузите демон systemd, чтобы изменения вступили в силу.

sudo systemctl daemon-reload

Запустите созданный сервис

sudo systemctl start app

Проверить состояние можно командой

sudo systemctl status app

Установка и конфигурирование Nginx для приложения .NET

Далее вам необходимо настроить Nginx как обратный прокси-сервер для предоставления доступа к вашему приложению через порт 80.

Сначала установите веб-сервер Nginx.

sudo apt install nginx

Затем создайте конфигурационный файл для виртуального хоста Nginx.

sudo nano /etc/nginx/conf.d/app.conf

Добавьте в файл следующую конфигурацию

server {
listen 80;
server_name app.example.com;

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

Сохраните и закройте файл конфигурации хоста и откройте конфигурационный файл Nginx

sudo nano /etc/nginx/nginx.conf

в раздел http добавьте следующие строки

server_names_hash_bucket_size 64;
client_max_body_size 20M;

Сохраните файл и перезапустите Nginx

sudo systemctl restart nginx