Сервер приложений на Ubuntu |
Данная инструкция актуальна для версии OS Ubuntu не ниже 20.04.3 LTS
1. Подготовка сервера к работе
Установка .NET 5.0
Перед установкой .NET откройте терминал и выполните следующие команды, чтобы добавить ключ подписи пакета Microsoft в список доверенных ключей и добавить репозиторий пакетов:
wget https://packages.microsoft.com/config/ubuntu/21.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
Установка SDK
Если вы уже установили пакет SDK или среду выполнения, с помощью команд dotnet --list-sdks и dotnet --list-runtimes узнайте, какие версии у вас установлены.
Пакет SDK для .NET позволяет разрабатывать приложения с помощью .NET. Если вы устанавливаете пакет SDK для .NET, вам не нужно устанавливать соответствующую среду выполнения. Чтобы установить пакет SDK для .NET, выполните следующие команды:
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-5.0
Установка среды выполнения
Следующие команды устанавливают среду выполнения ASP.NET Core, которая является наиболее совместимой средой выполнения для .NET. В терминале выполните следующие команды:
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-5.0
В качестве альтернативы среде выполнения ASP.NET Core вы можете установить среду выполнения .NET, которая не включает поддержку ASP.NET Core: замените aspnetcore-runtime-5.0 в предыдущей команде на dotnet-runtime-5.0:
sudo apt-get install -y dotnet-runtime-5.0
Установка Nginx
Поскольку Nginx доступен в репозиториях Ubuntu по умолчанию, его можно установить из этих репозиториев с помощью системы пакетов apt.
Так как это первое наше взаимодействие с системой пакетов apt в этом сеансе, мы также обновим индекс локальных пакетов, чтобы получить доступ к актуальным спискам пакетов. Затем мы можем выполнить установку nginx:
sudo apt update
sudo apt install nginx
После принятия процедуры apt выполнит установку Nginx и других требуемых зависимостей на ваш сервер.
Используйте команду systemd init system, чтобы проверить работу службы:
systemctl status nginx
Вы можете протестировать запуск службы посредством запроса страницы из Nginx.
Для этого откройте страницу Nginx по умолчанию, чтобы подтвердить работу программного обеспечения через IP-адрес вашего сервера. Введите IP-адрес вашего сервера в адресную строку браузера:
http://your_server_ip
Вы должны получить начальную страницу Nginx по умолчанию:
Страница Nginx по умолчанию
Если вы находитесь на этой странице, ваш сервер работает корректно и готов к управлению.
2. Создание каталога для приложений 1Форма
Чтобы создать каталог для приложений 1Форма введите команду:
mkdir -R /src/1forma
Скачайте файлы приложения на сервер и поместите их в каталог /src/1forma
Каталог с фронтендом:
spa >> /src/1forma/spa
NetCore приложение:
cp your_dir/net_core_app /src/1forma/net_core_app
3. Создание службы приложения 1forma_net_core_app
Для того, чтобы создать службу приложения 1forma_net_core_app, сперва настройте конфиг следующим образом:
vim /etc/systemd/system/1forma_net_core_app.service
Далее для добавления в автозапуск и активации службы выполните следующие команды:
systemctl daemon-reload
systemctl enable 1forma_net_core_app.service
systemctl start 1forma_net_core_app.service
Проверить статус можно с помощью следующей команды:
systemctl status 1forma_net_core_app.service
По умолчанию NetCore приложение доступно по следующему пути: https://localhost:6000
В конфигурационном файле appsettings.json могут быть указаны другие порт и протокол.
4. Настройка Nginx
Создайте конфигурационный файл и настройте его следующим образом:
vim /etc/nginx/conf.d/1forma_net_core_app.config
Пропишите в конфигурационном файле свои пути к сертификату и ключу:
ssl_certificate /src/crt/cert.crt;
ssl_certificate_key /src/crt/cert.key;
Далее укажите путь, по которому доступно NetCore приложение:
proxy_pass https://127.0.0.1:6000;
Проверить корректность настройки nginx и перезапустить службу можно следующим образом:
nginx -t
systecmtl restart nginx