Поскольку, сервер будет постоянным местом жительства моего сайта, то я решил установить стационарно платформу 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.
Вот собственно и все.