Разворачивание своего сайта, написанного на платформе NET7.0 на linux-64

Posted on 12/05/2023 by Віталій   |   Filed under templates, internet    Comments 11

Поскольку, сервер будет постоянным местом жительства моего сайта, то я решил установить стационарно платформу NET.

Для Ubuntu 22.04 - я делал по мануалу Microsoft. На эту систему идет платформа NET8.0. Несмотря на то, что эта платформа потдерживает и 7 и 6 версии, я решил перекомпилить свое приложение под платформу 8.

Поскольку MySQL у меня уже установлен, я всего лишь запустил скрипт настройки моей базы, и восстановил бэкап этой базы.

sudo mysql < MySiteCreateBase.sql
sudo mysql < BackupData.sql

В директорию для сайтов, по умолчанию, я перекинул свои рабочие файлы.

Теперь, надо настроить Nginx. Конфигурационный файл должен содержать указания для ретрансляции запросов на наше приложение.

/etc/nginx/sites-avaible/mysite.conf

#
# Note: This file must be loaded before other virtual host config files,
#
# HTTPS

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name mysite.com www.mysite.com

    ssl_certificate /etc/letsencrypt/live/mysite.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mysite.com/privkey.pem;

    location / {
        proxy_pass         http://127.0.0.1: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 dotnet mysite_ASP.dll
 
 info: Microsoft.Hosting.Lifetime[14]
 Now listening on: http://localhost:5000
 info: Microsoft.Hosting.Lifetime[0]
 Application started. Press Ctrl+C to shut down.
 info: Microsoft.Hosting.Lifetime[0]
 Hosting environment: Production
 info: Microsoft.Hosting.Lifetime[0]
 Content root path: /var/www/html/mysite_net.8 

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

Собственно и все. Прописываем этот запуск в сервисы и ставим его на автозагрузку.

Тут подсмотрел решение для "правильного" сервиса, который будет запускать наш сервис в фоновом режиме по запросу

Сервис создается в папке /etc/systemd/system/ Создаем файл допустим AspNetServer.service и прописываем:

[Unit]
Description=ASP .NET Web Application
[Service]
WorkingDirectory=/var/netcore
ExecStart=/usr/bin/dotnet /var/netcore/AnimeSite.dll
Restart=always
RestartSec=10
SyslogIdentifier=netcore-demo
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target

На 5 строчке вместо AnimeSite.dll укажите dll файл вашего приложения.

sudo systemctl enable AspNetServer
sudo systemctl start AspNetServer

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

sudo systemctl status AspNetServer

Чтобы выйти из режима просмотра статуса, нажмите Ctrl + C.

Вот собственно и все.

Image Gallery

Services Overview

Curabitur sed urna id nunc pulvinar semper. Nunc sit amet tortor sit amet lacus sagittis posuere cursus vitae nunc.Etiam venenatis, turpis at eleifend porta, nisl nulla bibendum justo.

Contact Us

Nullam quam lorem, tristique non vestibulum nec, consectetur in risus. Aliquam a quam vel leo gravida gravida eu porttitor dui.

Address: 1458 TemplateAccess, USA
Telephone: +123-1234-5678
FAX: +458-4578
Others: +301 - 0125 - 01258
E-mail: mail@yoursitename.com