[an error occurred while processing this directive]

Развёртывание приложений .NET/ASP.NET Core в Ubuntu 20.04 с Nginx
Данное руководство носит образовательный характер, и предназначено для тех -
кто ни разу не запускал  приложения 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-microsoft-prod.deb -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
  •  
    16.06.2020 , Автор: Артём Конкин , Источник: https://docs.google.com/document/d/...
    Ключи: dotnet, aspnet, mono, ubuntu, nginx
    Раздел:    Корень / Администратору / Сетевые сервисы / WWW, Apache httpd / Редирект, mod_rewrite

    [an error occurred while processing this directive]

    [an error occurred while processing this directive]