The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Раздел полезных советов: Развёртывание приложений .NET/ASP.NET Core  в Ubuntu 20.04 с Nginx"
Отправлено auto_tips, 23-Июн-20 10:15 
Данное руководство носит образовательный характер, и предназначено для тех - кто ни разу не запускал  приложения ASP.Net на сервере. Для больших, сложных и серьёзных проектов не годится, так как не учтены все нюансы развёртывания и настройки безопасности.

++ Этапы развертывания приложений на сервере Ubuntu 20.04

*** Сервер и соединение
*** Установка .net Core + ASP.net Core
*** Сборка приложения
*** Nginx и всё что с ним связано
*** Сервис приложения
*** Настройка прав пользователя

++ Сервер и соединение

Для того что бы развернуть приложение на .NET Core нам необходима виртуальная машина на Ubuntu - на ней мы и запустим наше первое приложение. Подключиться можно через SSH

++ Установка .net Core + ASP.net Core

Для начала нам нужно подключить репозиторий для того чтобы в последующем установить все нужные нам пакеты.

   wget https://packages.microsoft.com/config/ubuntu/20.04/packages-... -O packages-microsoft-prod.deb
   sudo dpkg -i packages-microsoft-prod.deb

Установка пакетов

   sudo apt-get update
   sudo apt-get install -y apt-transport-https
   sudo apt-get update
   sudo apt-get install -y dotnet-sdk-3.1
   sudo apt-get install -y aspnetcore-runtime-3.1

++ Сборка приложения

На этом этапе нам нужно скомпилировать приложение и получить исполняемые файлы которые мы будем запускать в виртуальной машине.

Создадим проект

   dotnet new webapp -o ProjectName
   cd ProjectName

Сборка приложения

   dotnet publish --configuration Release

В итоге мы получим в каталоге проекта по пути /bin/Release/ исполняемые файлы приложения.

++ Nginx и всё что с ним связано

Установка пакетов

   sudo apt install nginx
   sudo service nginx start

В браузере должна открыться стартовая страница Nginx по умолчанию. Целевая страница доступна по адресу http://server_IP_address

Настройка конфигурации

Для того чтобы настроить сервер так как нам нужно необходимо отредактировать конфиг Nginx в директории /etc/nginx/sites-available/

sudo vi /etc/nginx/sites-available/default

   server {
       listen        80;
       server_name   example.com *.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;
           proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header   X-Forwarded-Proto $scheme;
       }
   }

++ Сервис приложения

Создайте файл определения службы.

   sudo vi /etc/systemd/system/dotnetapp.service

Добавляем конфигурацию сервиса

   [Unit]
   Description=Example .NET Web API App running on Ubuntu

   [Service]
   WorkingDirectory=/var/www/helloapp
   ExecStart=/usr/bin/dotnet /var/www/helloapp/helloapp.dll
   Restart=always
   # Restart service after 10 seconds if the dotnet service crashes:
   RestartSec=10
   KillSignal=SIGINT
   SyslogIdentifier=dotnet-example
   User=www-data
   Environment=ASPNETCORE_ENVIRONMENT=Production
   Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

   [Install]
   WantedBy=multi-user.target

Запуск сервиса

   sudo systemctl enable dotnetapp.service

Проверка статуса сервиса

   sudo systemctl status dotnetapp.service

Перезапуск сервиса

   sudo systemctl restart dotnetapp.service

Daemon reload

   sudo systemctl daemon-reload

++ Настройка прав пользователя

Группа www-data

Пользователь (www-data) должен существовать и иметь права владельца в отношении файлов приложения. www-data создаётся автоматически при установке Nginx. Для того чтобы Nginx мог работать с каталогом нашего приложения нужно каталогу присвоить права пользователя www-data.

   sudo chown username:www-data /var/www/ -R
   sudo systemctl restart dotnetapp.service
   sudo chown -R www-data:username /var/www/*
   sudo systemctl status dotnetapp.service

URL: https://docs.google.com/document/d/1BfPRdjGO87BiEgxyXvRAzoOd...
Обсуждается: http://www.opennet.ru/tips/info/3149.shtml

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру